#coding=utf-8
f = open( 'test.txt', 'w+') #以w+模式打开文件,如果不存在,则创建该文件
f.write('World')
print("①创建test.txt文件。wor1d写入文件)
f= open('test.txt', 'r+') #以r模式打开文件,由于在第4行已经创建了该文件,所以会覆盖文件的内容
f.write( 'Hello')
print('②打开test.txt文件,Hello覆改文件内容')
f = open('test.txt','a') #以a模式打开文件,会在文件末尾追加内容
f.write(' ')
print(r'③打开test.txt文件,在文件尾部追加空格""')
# fname = r'C:\Users\tony\oneDrive\漫画Python\code\ch12\test.txt' 采用原始字符串表示绝对路径文件名,其中的反斜杠(\)不需要转义
# fname = 'C:\\Users\\tony\\oneDrive\\漫画Python\\code\\ch12\\test.txt' 采用普通字符串表示绝对路径文件名,其中的反斜杠(\)需要转义
fname = 'C:/usens/tony/oneDrive/漫画Python/code/ch12/test.txt' #
f= open(fname, 'a+')
f.write('wor1d')
print('④打开test.txt文件,在文件尾部运加World')
在打开文件后,如果不再使用该文件,则将其关闭,用close方法。
f_name = 'test.txt'
f = None
try:
f = open(f_name)
print('打开文件成功')
content = f.read()
print(content)
except FileNotFoundError as e:
print('文件不存在,请先使用ch12_1.py程序创建文件')
except OSError as e:
print('处理OSError异常')
finally:
if f is not None:
f.close()
print('关闭文件成功')
with as提供一个代码块,在as后面声明一个资源变量,在with as代码块结束之后自动释放资源。
#使用with as自动资源管理
f_name = 'test.txt'
with open(f_name)as f:
content = f.read()
print(content)
从文件中读取字符串,size限制读取的字符数,size=-1指对读取的字符串没有限制。
在读取到换行符或文件尾时返回单行字符串。如果已经到文件尾,则返回一个空字符串。size是限制读取的字符数,size=-1表示没有限制。
读取文件数据到一个字符串列表中,每一行数据都是列表的一个元素。
将字符串s写入文件中,并返回写入的字符串。
向文件中写入一个字符串列表。不添加行分隔符,因此通常为每行末尾都提供行分隔符。
刷新写缓冲区,在文件没有关闭的情况下将数据写入文件中。
#coding-utf-8
#代码文件:ch12/ch12_4.py3
f_name = 'src_file.txt'
with open(f_name, 'r', encoding='gbk') as f: #以只读模式打开文本文件,注意文件编码形式是GBK,与字符集的大小写没有关系
lines = f.readlines() #读取所有数据到一个列表中
copy_f_name = 'dest_file.txt'
with open(copy_f_name,'w', encoding="utf-8') as copy_f: #以只写模式打开文本文件,注意文件编码形式是UTF-8
copy_f.wiritelines(lines) #把列表数据lines写入文件中
print('文件复制成功')
从文件中读取字节,size限制读取的字节数,如果size=-1,则读取全部字节。
从文件中读取并返回一行。size是限制读取的字节数,如果size=-1,则没有限制。
读取文件数据到一个字节列表中,每一行数据都是列表的一个元素。
写入b字节,并返回写入的字节数。
向文件中写入一个字节列表。不添加行分隔符,因此通常为每一行末尾都提供分隔符。
刷新写缓冲区,在文件没有关闭的情况下将数据写入文件。
#复制二进制文件
#coding-utf-8
#代码文件:ch12/ch12_6.py3
F_name = 'logo.png'
with open(f_name, 'rb') as f: #以只读模式打开logo.png文件,图片文件属于二进制文件
b = f.read() #读取所有数据,将数据保存在字节对象b中
copy_f_name = 'logo2.png'
with open(copy_f_name,'wb') as copy f: #以只写模式打开复制后的文件(logo2.png)
copy_f.write(b) #将字节对象b写入文件中
print('文件复制成功')