1⃣️ os模块
os 模块一些方法的应用,整理如下
1 import os 2 3 print(os.listdir(r'/Users/nhy/PycharmProjects/cnz/day2')) 4 # 列出某个目录下面的文件夹/文件 5 print(os.path.isfile('passwords.txt')) 6 print(os.path.isdir('passwords.txt')) 7 os.mkdir('jiajinju') 8 os.makedirs('yangll') 9 os.makedirs('cnz/yangll')#父目录不存在的时候会帮你创建 10 os.mkdir('cnz/jinjinju') 11 os.rename('cnz','处女座') 12 print(os.getcwd()) #获取当前目录 13 os.chdir(r'/Users/nhy/PycharmProjects/cnz/day1') 14 print(os.getcwd()) #获取当前目录 15 print(os.cpu_count()) 16 result = os.system('sdfsg')#执行操作系统命令 17 print('执行的结果~~~~',result) 18 result = os.popen('ifconfig').read() 19 print('result.....',result) 20 os.remove('jiajinju') 21 os.rmdir('jiajinju') #删除文件夹,删除空文件夹 22 print(os.path.getsize('passwords.txt')) #获取文件的大小 23 print(os.path.dirname('/Users/jiaolf/PycharmProjects/day3'))#获取父目录 24 print(os.path.join('users','a.txt')) 25 print(os.path.exists('product.json')) #判断文件是否存在 26 print(os.path.split('/Users/nhy/PycharmProjects/cnz/day3/a.txt')) #分隔文件名和路径的 27 print(os.path.abspath('../../day3'))#取绝对路径的 28 29 print(os.path.getmtime('/Users/nhy/PycharmProjects/cnz/day1.zip')) #获取某个文件的修改时间 30 print(os.path.getctime('/Users/nhy/PycharmProjects/cnz/day1.zip')) #获取某个文件的创建时间 31 print(os.path.getatime('/Users/nhy/PycharmProjects/cnz/day1.zip')) #最近一次访问的时间
还有一个比较重要的方法是 os.walk(path)
os.walk(path) 会自动遍历传入路径的所有文件和文件夹,在实际应用时需要注意的是,如果需要读文件内容,需要使用 os.chdir() 来改变当前目录,否则无法读取文件内容;然后再对特定文件操作完毕后需要手动将当前目录改回到程序运行的目录,否则会影响文件的遍历。
1 for cur_dir,dirs,files in os.walk(r'处女座'): 2 print('当前文件夹,',cur_dir) 3 print('当前目录下的文件夹',dirs) 4 print('当前目录下的文件',files)
os.walk()的应用:
1 # 指定一个目录,然后找到这个目录下有哪些文件, .mp4 .avi 2 # 3 # 1、获取这个目录下有哪些文件 os.walk() 4 # 2、判断文件名是否以.mp4/.avi结尾 5 6 def find_movie(path): 7 for cur_dir, dirs, files in os.walk(path): 8 for file in files: 9 if file.endswith('.mp4') or file.endswith('.avi'): 10 print('在这个目录下发现了视频:%s'%cur_dir) 11 break 12 13 find_movie('/')
2⃣️ time模块
先引入几个概念,时间戳,时间元组,格式化时间。
1. 时间戳,从计算机诞生开始计时的一串数字,time.time() 可以获取到当前的时间戳
2. 时间元组,程序中时间戳与格式化时间转换过程中的中间变量,用一个元组存放了时间信息
3. 格式化时间,即我们常用的年月日时分秒
以下为时间戳(time_stamp)、格式化时间(time_str)和时间元组(time_tuple)之间的互相转换。
import time format = '%Y-%m-%d' time_str = time.strftime('%Y-%m-%d') #取现在的时间,格式化好的 time_stamp = time.time() #取现在的时间戳,float类型 #时间元组与其他两种格式的转换方法 time_tuple = time.strptime(time_str,format) #格式化时间转时间元组 time.strftime(format,time_tuple) #时间元组转格式化时间 time.mktime(time_tuple) #时间元组转时间戳 time.gmtime(time_stamp) #时间戳转时间元组,标准时间
time.localtime(time_stamp) #本地时间
用上面的方法,可以定义格式化时间与时间戳相互转换的函数,如下
def str_to_timestamp(str=None,format='%Y-%m-%d %H:%M:%S'): #格式化好的时间转时间戳的,如果不传格式化好的时间,就返回当前的时间戳 if str: time_tuple = time.strptime(str,format) # 把格式化好的时间,转成时间元组 return int(time.mktime(time_tuple)) return int(time.time()) def timestamp_to_str(timestamp=None,format='%Y-%m-%d %H:%M:%S'): '''这个是把时间戳转换成格式化好的实际,如果不传时间戳,那么就返回当前的时间''' if timestamp: time_tuple = time.localtime(timestamp) # 取本地时区的时间 return time.strftime(format, time_tuple) return time.strftime(format)