文件操作
文件打开
- 语法:file object = open(file_name [, access_mode][, buffering])
- file_name:要访问的文件路径及名称的字符串值。
- access_mode:决定了打开文件的模式:只读,写入,追加等。默认文件访问模式为只读®。
- buffering:
- 值取0,不会有寄存。
- 值取1,访问文件时会寄存行。
- 值取大于1的整数,表明了这就是的寄存区的缓冲大小。
- 值取负值,寄存区的缓冲大小则为系统默认。
- f = open('E:\\test1.txt', 'w')
- 表:python文件打开模式,参考自https://www.runoob.com/python/python-files-io.html
t 文本模式 (默认)。 x 写模式,新建一个文件,如果该文件已存在则会报错。 b 二进制模式。 + 打开一个文件进行更新(可读可写)。 U 通用换行模式(不推荐)。 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。 rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
- 直接print(f),会输出一个文件对象:
<_io.TextIOWrapper name='D:\\test1.txt' mode='r' encoding='cp936'>
文件对象方法
属性 | 描述 |
---|---|
file.closed | 返回true如果文件已被关闭,否则返回false。 |
file.mode | 返回被打开文件的访问模式。 |
file.name | 返回文件的名称。 |
file.softspace | 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。 |
list(f)
能将文件直接转化为列表读取文件对象
for each_line in f:
print(each_line)
- 注意:
文件写入后,关闭文件才能保存写入内容f.write('i love ivcc')
f.close()
pathlib
from pathlib import Path
cwd()获取当前工作目录
还可以直接指定一个路经
'/'可以直接进行拼接
is_file判断一个路径是否为文件
exists()判断路径是否存在
name属性去获取路径的最后一个部分
stem用于获取文件的文件名
suffix获取文件后缀
parent获取父级目录
parents获取逻辑祖先路径构成的不可变序列
parts属性将路径的各个组件拆分成元祖
stat()查询文件或者文件夹的信息
mkdir()创建文件,如果已经存在就会报错,设置参数exit_ok=True就会忽略报错信息,若父级目录不存在就会报错,但是再设置一个parents=True参数就会创建父级目录,不报错
rename()修改文件夹或文件的名称,附带修改路径的功能
replace()替换指定的文件或文件夹,附带修改路径的功能
rmdir()删除文件夹,unlink()删除文件
glob()功能强大的查找功能
with语句和上下文管理器
打开操作关闭文件
pickle模块
“Pickling”是将Python对象层次结构转换为二进制字节流的过程,
“unpickling”是反向操作
作用:
- 简化程序,将大量的数据打包(如: 城市字典)成二进制文件,需要使用时调用即可
实例:
import pickle
def dabao():
my_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
pickle_file = open('my_list.pkl', 'wb')
pickle.dump(my_list, pickle_file)
pickle_file.close()
def diaoyong():
pickle_file = open('my_list.pkl', 'rb')
my_list2 = pickle.load(pickle_file)
print(my_list2)
if __name__ == '__main__':
#dabao()
diaoyong()
本文含有隐藏内容,请 开通VIP 后查看