对于文件系统的访问,python一般是通过OS(操作系统)模块实现的。python作为跨平台的语言,在不同的操作系统可以使用同样的源代码而不需要修改。
OS模块中关于文件/目录常用的函数使用方法:
getcwd() 返回当前工作目录
>>> import os
>>> os.getcwd()
'D:\\python3.6.4\\Lib\\idlelib'
chdir(path)改变工作目录
>>> os.chdir("D:\代码\python")
>>> os.getcwd()
'D:\\代码\\python'
listdir(path=’.’)列举指定目录中的文件名(‘.’表示当前目录,’..’表示上一级目录)
>>> os.listdir()
mkdir(path)创建单层目录,如该目录已存在抛出异常
makedirs (path)用于创建多层目录
>>>os.makedirs(r”.\a\b\c”)
remove(path)用于删除指定文件,rmdir(path)用于删除目录,removedirs(path)用于删除多层目录
rename(old,new)用于重命名文件或文件夹
>>> os.rename("信息安全.txt","security.txt")
system(command)用于使用OS提供的小工具
walk(top) 用于遍历top参数指定路径下的所有子目录,并将结果返回一个三元组(路径,[包括目录],[包含文件])
另外path模块提供了一些实用的定义:os.curdir表示当前目录;os.pardir表示上一级目录(‘..’);os.sep表示路径的分隔符;os.linesep表示当前平台使用的行终止符;os.name表示当前使用的操作系统。
用于获得文件名basename();用于获得路径名dirname()
>>> os.path.dirname(r"D:\\代码\\python\#p2_1.py")
'D:\\\\代码\\\\python'
>>> os.path.basename(r"D:\\代码\\python\#p2_1.py")
'#p2_1.py'
用于将路径名和文件名组合成一个完整的路径os.path.join()
>>> os.path.join(r"D:\\代码\\python","#p2_1.py")
'D:\\\\代码\\\\python\\#p2_1.py'
分割路径和文件名split();分割文件名和扩展名splitext()
获取文件的尺寸(返回值以字节为单位)getsize(file)
获取文件最近访问时间getatime();创建时间getctime();修改时间getmtime()。其返回值均为float型秒数,可用time模块的gmtime()或localtime()函数换算。
将所有的python对象转化为二进制的形式存放,该过程称为pickling,从二进制形式转换回对象的过程称为unpickling
#p8_3.py
import pickle
my_list = [123,3.14,'坚持',['another list']]
pickle_file = open('E:\\my_list.pk1','wb')
pickle.dump(my_list,pickle_file) #使用dump保存数据
pickle_file.close()
程序执行后会在E盘保存一个my_list.pk1的文件,用记事本打开如下图
其显示乱码(因为保存的是二进制形式)
那么在使用时只需用二进制模式先把文件打开,然后用load把数据加载进来:
#p8_4.py
import pickle
pickle_file = open("E:\\my_list.pk1","rb")
my_list = pickle.load(pickle_file)
print(my_list)