1、python文件缓冲区
f = open('test', 'w', 1) # 第三个参数为1表示行缓冲,默认值为-1
while True:
data = input('>>>')
if not data:
break
f.write(data)
f.flush() # 立即刷新缓冲,写入磁盘
f.close() # 文件结束刷新缓冲区
2、python文件偏移量
定义:打开一个文件进行操作时系统会自动生成一个记录,记录中描述了我们对文件的一系列操作。其中包括每次操作到的文件位置。文件的读写操作都是从这个位置开始进行的。
"""
seek.py 文件偏移量演示
seek(offset[,whence]) offset表示相对于某个位置移动的字节数。负数表示向前移动,正数表示向后移动
whence是基准位置的默认值为 0,代表从文件开头算起,1代表从当前位置算起,2 代表从文件末尾算起。
r w open 打开文件偏移量在开头
a 打开文件偏移量在结尾
通常以二进制方式打开操作文件偏移量
"""
f = open('test', 'wb+')
f.write(b'Hello World')
f.flush()
# print('文件偏移量:{0}'.format(f.tell()))
print('文件偏移量:%s' % (f.tell()))
# 操作文件偏移量
f.seek(5, 0)
data = f.read()
print(data)
f.close()
3、文件读写操作
file_object = open(file_name, access_mode=‘r’, buffering=-1)
功能:打开一个文件,返回一个文件对象。
参数:file_name 文件名;
access_mode 打开文件的方式,如果不写默认为‘r’
文件模式 操作
r 以读方式打开 文件必须存在
w 以写方式打开
文件不存在则创建,存在清空原有内容
a 以追加模式打开
r+ 以读写模式打开 文件必须存在
w+ 以读写模式打开文件
不存在则创建,存在清空原有内容
a+ 以读写模式打开 追加模式
rb 以二进制读模式打开 同r
wb 以二进制写模式打开 同w
ab 以二进制追加模式打开 同a
rb+ 以二进制读写模式打开 同r+
wb+ 以二进制读写模式打开 同w+
ab+ 以二进制读写模式打开 同a+
buffering 1表示有行缓冲,默认则表示使用系统默认提供的缓冲机制。
返回值:成功返回文件操作对象。
-
读文件操作函数
read([size])
功能: 来直接读取文件中字符
size:读取字节数
返回值: 返回读取到的内容readline([size])
功能: 用来读取文件中一行
size:默认-1,读取一行,给定数值表示读取字节数
返回值: 返回读取到的内容readlines([sizeint])
功能: 读取文件中的每一行作为列表中的一项
size:默认-1,读取所有,给定数值表示读取字节数
返回值: 返回读取到的内容列表 -
写操作函数
write(string)
功能: 把文本数据或二进制数据块的字符串写入到文件中去
参数:要写入的内容
返回值:写入的字符个数writelines(str_list)
功能:接受一个字符串列表作为参数,将它们写入文件。
参数: 要写入的内容列表 -
关闭文件操作
file_object.close() -
常见文件操作函数
1、获取文件大小 os.path.getsize(file)
2、查看文件列表 os.listdir(dir)
3、查看文件是否存在 os.path.exists(file)
4、判断文件类型 os.path.isfile(file)
5、删除文件 os.remove(file)
4、文件操作练习
"""
输入要复制的文件路径,将文件复制到另外一个文件目录下
"""
filename = input('File:') # 输入文件名
try:
fr = open(filename, 'rb') # 二进制打开文件
except FileExistsError as e:
print(e)
else:
fw = open('/home/xiaohuo/PycharmProjects' + filename.split('/')[-1], 'wb') # 打开文件
while True:
data = fr.read(1024) # 读取文件
if not data:
break
else:
fw.write(data)
fr.close()