文件操作和序列化
Posted imcati
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件操作和序列化相关的知识,希望对你有一定的参考价值。
通过内置的open()函数打开一个文件对象。
格式:fd=open(‘filename‘)
以不同模式打开一个文件对象:
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
示例:
[xxoo:/tmp]$ cat tmpfile
hello
world
只读方式:
#!/usr/bin/env python
file=open(‘tmpfile‘,‘r‘)
print(file.read().strip())
file.close() #关闭文件操作
写方式:
#!/usr/bin/env python
file=open(‘tmpfile‘,‘w‘)
file.write("12345
")
file.close()
再次查看tmpfile 输出:12345
方法:
file.close() #关闭文件操作
file.flush() #刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件 (可以通过time.sleep()函数 观察写入的数据 磁盘刷新情况)
file.fileno() #返回一个整型的文件描述符
file.isatty() #如果文件连接到一个终端设备返回 True,否则返回 False
file.read([size]) #从文件读取指定的字节数,未给定size或size为负数时读取所有数据
file.readline() #读取整行
file.readlines() #读取所有行并返回列表
file.seek(offset[,whence]) #设置当前文件位置
file.tell() #返回文件当前位置
file.truncate([size]) #截取文件,截取的字节通过size指定,从文件开始位置截取
file.write(str) #将str写入到文件中
file.writelines(sequence) #向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
以上是关于文件操作和序列化的主要内容,如果未能解决你的问题,请参考以下文章