文件和文件系统:
1、打开一个文件
f=open(r"C:\Users\Lenovo\Desktop\Python.txt",‘r’)
s=f.read()
print(s)
这个世界上没有标准答案,那些人,以自己的标准衡量别人的人或许是傻逼
2、文件的对象方法
fileObject.close() 用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发ValueError错误。
f.close <built-in method close of _io.TextIOWrapper object at 0x03CCFE30>
fileObject.read([size]) 用于从文件读取指定的字符数,如果未给定或为负则读取所有。
f=open(r"C:\Users\Lenovo\Desktop\Python.txt",'r')
print("读取的字符串:%s"%line)
读取的字符串:这个世界上没有标准答案,那些人,以自己的
fileObject.readline()读取整行,包括 “\n” 字符。
fileObject.readlines()用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for… in … 结构进行处理。
```python
f=open(r"C:\Users\Lenovo\Desktop\Python.txt",'r')
>>> lines=f.readlines()
>>> print(lines)
['这个世界上没有标准答案,那些人,以自己的标准衡量别人的人或许是傻逼']
>>> for each in lines:
each.strip()
print(each)
'这个世界上没有标准答案,那些人,以自己的标准衡量别人的人或许是傻逼'
这个世界上没有标准答案,那些人,以自己的标准衡量别人的人或许是傻逼
fileObject.tell()返回文件的当前位置,即文件指针当前位置。
fileObject.seek(offset[, whence])用于移动文件读取指针到指定位置。
offset:开始的偏移量,也就是代表需要移动偏移的字节数,如果是负数表示从倒数第几位开始。
whence:可选,默认值为 0。给 offset 定义一个参数,表示要从哪个位置开始偏移;0 代表从文件开头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起。
f=open(r"C:\Users\Lenovo\Desktop\将进酒.txt",‘r’)
line=f.readline()
print(line)
君不见,黄河之水天上来⑵,奔流到海不复回。
line=f.readline()
print(line)
f.seek(0,0)
0line=f.readline()
print(line)
君不见,黄河之水天上来⑵,奔流到海不复回。
fileObject.write(str)用于向文件中写入指定字符串,返回的是写入的字符长度。
在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。
如果文件打开模式带b,那写入文件内容时,str(参数)要用encode方法转为bytes形式,否则报错:TypeError: a bytes-like object is required, not ‘str’。
(I don’t know!)
fileObject.writelines(sequence)向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符\n。
- OS 模块中关于文件/目录常用的函数使用方法
os.getcwd()用于返回当前工作目录。
os.chdir(path)用于改变当前工作目录到指定的路径。
- 序列化与反序列化
Python 的 pickle 模块实现了基本的数据序列和反序列化。
通过 pickle 模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储。
通过 pickle 模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
pickle模块中最常用的函数为:
pickle.dump(obj, file, [,protocol]) 将obj对象序列化存入已经打开的file中。
obj:想要序列化的obj对象。
file:文件名称。
protocol:序列化使用的协议。如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本。
pickle.load(file) 将file中的对象序列化读出。
file:文件名称。