1、文件IO
IO: Input:输入 Output:输出
Input输入:从文件中读取数据,输入到程序中处理
Output输出:将程序中的数据,输入到文件中
文件IO:程序控制系统文件内容的操作
计算机中的文件:
二进制文件:在计算机中,使用文本编辑软件(如记事本)打开出现乱码的文件
文本文件:在计算机中,能正常使用文本编辑软件打开,不出现乱码的文件
2、普通文件操作方式
1、文本文件处理
2、二进制文件处理
对于计算机系统中文件内容的操作,python提供了一个基本处理函数:open
open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
Open file and return a stream. Raise OSError upon failure.
file要操作的文件的名称,文件可以是一个给定名称的字符文件(文本文件)或者字节文件(二进制文件)。
mode操作文件的方式
buffering缓存(针对二进制文件处理)
encoding读取文件用什么编码方式操作,默认utf-8errors出现的错误
newline每行处理完后添加换行或回车(针对文本文件处理)
mode: 模式~操作文件的方式
r/read 只读
w/writ 只写 如果多次执行程序,新数据会覆盖旧数据
a/append 追加 如果多次运行程序,新数据会追加到旧数据后面
t/text 操作文本文件
b/binrary 操作二进制数据
-
读写方式,可以写入数据,可以读取数据
(1)、文本文件操作:将程序中的数据,写入到文件中
file = open(’./data/1.1.text’,‘wt’,encoding=‘UTF-8’)
#程序中有一个字符串
message = ‘hello 朱正廷’
#将数据写入到文件中
file.write(message)
#关闭文件
file.close()
(2)、文本文件操作:从文件中读取数据,展示到程序中
file = open(file=’./data/1.1.text’,mode = ‘r’,encoding=‘utf-8’)
#从文件中读取数据,展示到控制台中
info = file.read()
print(info)
#关闭文件
file.close()
(3)、文本文件的追加
file = open(file=’./data/1.2.text’,mode=‘a’,encoding=‘utf-8’)
#要操作的文本数据
message = ‘人间三月草未莘\n’
file.write(message)
message2 = ‘间关探嗓几回闻\r’
file.write(message2)
message3 = ‘仙榐一叶偏入凡,子衔绛珠伴露生’
file.write(message3)
#关闭文件
file.close()
(4)、二进制文件操作:读取二进制数据——将数据写入到目标地
#D:\朱正廷壁纸\朱正廷.gif
#读取计算机中的二进制文件数据
file = open(file=‘D:/朱正廷壁纸/朱正廷.gif’,mode=‘rb’)
#将数据重新存储到我们指定的位置
file2 = open(file=’./data/zzt.gif’,mode=‘wb’)
file2.write(file.read())
#关闭文件2
file2.close()
#关闭文件
file.close()
(5)文件的快捷操作:with语法
with open(‘D:/朱正廷壁纸/朱正廷.gif’,‘rb’) as file1:
# 打开文件,将文件对象赋值给变量file1,with中的代码执行完成,文件file1自动关闭
with open(’./data/’+file1.name[file1.name.rfind(’/’):],‘wb’) as file2:
# 将读取的文件存储到指定的文件夹中
file2.write(file1.read())
+file1.name[file1.name.rfind(’/’) 可以获取file1文件的名字