python的file,time的一些知识点

1,open 和 with open的区别
open是手动打开,不需要的就需要关闭,不关闭可能会发现未知的错误

with open是自动打开,不需要的python会自动关闭

2,遍历文本数据

files = open('python.txt','r',encoding='utf-8')

for line in files :
	print(line)
	
files.close()`

这样相对来说没有那么占用资源,比read 或者readlines一次性读取 没那么占用资源
但是 read 和readlines在整体可能处理速度要快,因为for需要多次读取数据

files = open('python.txt','r',encoding='utf-8')
content = files.readlines()

for line in content :
	print(line)

files.close()

3,seek 函数,指针偏移量
file.seek(0) 的作用是可以实现反复读取数据,而不需要反复打开关闭文件 ,这是一个很好的技巧

4,os 中文件夹的操作
os.getcwd() #当前目录
os.listdir() #打印当前文件夹内的文件
os.listdir(“F:\”) #打印指定文件夹内的文件

#判断是否是一个文件

os.path.isfile("F\\pt.txt")

os.path.exists("F:\\")

os.rename("","")
吧目录路径和文件名分开
os.remove("F:\\tete.txt")
#创建文件夹
os.mkdir("F:\\package")
os.mkdirs("")

os.path.split("F:\\tt.txt")

# 查看文件名
# def basename(p):
#     """Returns the final component of a pathname"""
#     return split(p)[1]
# print(os.path.basename(path))  #注意 如果文件 为 "D:/nihao/nihao" 那么他输出的是 nihao
# print(os.path.dirname(path))

以下代码实现 创建指定文件中的目录,如果包含文件,就创建文件,不包含就只创建目录

# "D:/nihao/tmp.txt" 或者 实现 "D:/nihao" 类型的创建

path = "D:/nihao/tmp.txt"
tuple_1 = os.path.split(path)
print(tuple_1)

if "." in tuple_1[1]:
    os.makedirs(tuple_1[0])
    fo = open(path,"w")
    fo.close()
else:
    os.makedirs(path)

#文件的遍历

os.walk()获得三组数据(rootdir, dirname,filnames)

def file_path(file_dir):
    for root, dirs, files in os.walk(file_dir):
        print(root, end=' ')    # 当前目录路径,,注意 这里的end = ' '表示print输出的时候不换行
        print(dirs, end=' ')    # 当前路径下的所有子目录
        print(files)            # 当前目录下的所有非目录子文件

file_path("D:\PLSQL")

#获取一个文件夹下面所有的文件的路径

def find_file(filepath):
    files = os.listdir(filepath)
    for fi in files:
	# 在这里join的目的是吧父路径添加进去
        fi_d = os.path.join(filepath,fi)
        if os.path.isdir(fi_d):
            find_file(fi_d)
        else:
            print(os.path.join(filepath,fi_d))

find_file("D:\PLSQL\DataGenerator")

3 time模块的用法
time.altzone 返回格林时间
time.asctime() 获得时间元组 可以给他提供一个参数

time.clock() windows 和linux不一样

常用
time.ctime() 获取当前时间

常用
time.time() 获取时间戳,从1970年到现在的秒数

time.gmtime() 返回一个时间元组 返回的事格林威治的时间元祖

常用
time.localtime()

#时间戳转换成时间元祖,将时间元祖转换成时间字符串

times = time.time()

tmp = time.localtime(times)

localtime返回一个时间元组:
索引 字段 值
0 4位数, 表示年份 2018,2019…
1 月份 1 ~ 12
2 日期 1 ~ 31
3 小时 0 ~ 23
4 分钟 0 ~ 59
5 秒 0 ~ 61(60或61是闰秒)
6 星期几 0 ~ 6(0是星期一)
7 一年的第几天 1 ~ 366(朱利安日)
8 夏令时 -1,0,1,-1表示库确定DST

print(time.strftime("%Y-%m-%d %H:%M:%S",tmp))

#吧时间字符串转换成时间元祖
times = "2017-12-25 12:12:12"

tmp = time.strptime(times,'%Y-%m-%d %H:%M:%S')
print(tmp)

#把时间元祖转换成时间戳
time.mktime(tmp)

time.sleep(5)#时间睡眠5秒

练习题目:获得三天前的时间

threAgo = time.time() - 60*60*24*3
print(time.localtime(threAgo))

#---------------------------切换时间格式 --------------------------

“2017-11-24 17:30:00” 转换成 “2017/11/24 17:30:00”

t = "2017-11-24 17:30:00"
#先转换为时间数组,然后转换为其他格式
timeStruct = time.strptime(t, "%Y-%m-%d %H:%M:%S")
strTime = time.strftime("%Y/%m/%d %H:%M:%S", timeStruct)
print(strTime)

----------------利用datetime来获取时间

import datetime 
i = datetime.datetime.now() 
print ("当前的日期和时间是 %s" % i) 
print ("ISO格式的日期和时间是 %s" % i.isoformat() ) 
print ("当前的年份是 %s" %i.year) 
print ("当前的月份是 %s" %i.month) 
print ("当前的日期是 %s" %i.day) 
print ("dd/mm/yyyy 格式是  %s/%s/%s" % (i.day, i.month, i.year) ) 
print ("当前小时是 %s" %i.hour) 
print ("当前分钟是 %s" %i.minute) 
print ("当前秒是  %s" %i.second)

猜你喜欢

转载自blog.csdn.net/qwertyuiop5rghar/article/details/84987847