文件与文件系统
18.1.1 1.1 打开文件
- open(file, mode=‘r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True)
Open file and return a stream. Raise OSError upon failure.
a. file : 必需,文件路径(相对或者绝对路径)。
b. mode : 可选,文件打开模式
c. buffering : 设置缓冲
d. encoding : 一般使用utf8
e. errors : 报错级别
f. newline : 区分换行符
f = open(‘将进酒.txt’)
print(f)
<_io.TextIOWrapper name=‘将进酒.txt’ mode=‘r’ encoding=‘cp936’>
for each in f:
print(each)
#君不见,黄河之水天上来,奔流到海不复回。
#君不见,高堂明镜悲白发,朝如青丝暮成雪。
#人生得意须尽欢,莫使金樽空对月。
天生我材必有用,千金散尽还复来。
#烹羊宰牛且为乐,会须一饮三百杯。
岑夫子,丹丘生,将进酒,杯莫停。
与君歌一曲,请君为我倾耳听。
钟鼓馔玉不足贵,但愿长醉不复醒。
古来圣贤皆寂寞,惟有饮者留其名。
陈王昔时宴平乐,斗酒十千恣欢谑。
主人何为言少钱,径须沽取对君酌。
五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。
fileObject.close() 用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触
发 ValueError 错误。
f = open(‘将进酒.txt’, ‘r’)
lines = f.readlines()
print(lines)
for each in lines:
each.strip()
print(each)
君不见,黄河之水天上来,奔流到海不复回。
君不见,高堂明镜悲白发,朝如青丝暮成雪。
人生得意须尽欢,莫使金樽空对月。
天生我材必有用,千金散尽还复来。
烹羊宰牛且为乐,会须一饮三百杯。
岑夫子,丹丘生,将进酒,杯莫停。
与君歌一曲,请君为我倾耳听。
钟鼓馔玉不足贵,但愿长醉不复醒。
古来圣贤皆寂寞,惟有饮者留其名。
陈王昔时宴平乐,斗酒十千恣欢谑。
主人何为言少钱,径须沽取对君酌。
五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。
f.close()
OS 模块中关于文件/目录常用的函数
我们所知道常用的操作系统就有:Windows,Mac OS,Linu,Unix等,这些操作系统底层对于文件系统的访问工作
原理是不一样的,因此你可能就要针对不同的系统来考虑使用哪些文件系统模块……,这样的做法是非常不友好且
麻烦的,因为这样就意味着当你的程序运行环境一改变,你就要相应的去修改大量的代码来应对。
有了OS(Operation System)模块,我们不需要关心什么操作系统下使用什么模块,OS模块会帮你选择正确的模块
并调用。
18.3 3. 序列化与反序列化 - 通过 pickle 模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储。
- 通过 pickle 模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
pickle模块中最常用的函数为:
pickle.dump(obj, file, [,protocol]) 将 obj 对象序列化存入已经打开的 file 中。 - obj :想要序列化的 obj 对象。
- file :文件名称。
- protocol :序列化使用的协议。如果该项省略,则默认为0。如果为负值或 HIGHEST_PROTOCOL ,则使用最
高的协议版本。
pickle.load(file) 将 file 中的对象序列化读出。 - file :文件名称。