一、读取文件的内容:
1、简单读取
需要知道的是,现代操作系统不允许程序直接读写磁盘,而是由操作系统来返回一个文件对象,所以,在获取到系统的文件对象后,还需要关闭。
读取文件的内容无非就是3个步骤:拿到文件对象,读取,关闭文件对象,对应python代码为
#第一个参数为文件的路径,第二个参数即为读取的模式
f = open(‘/xxx/file.txt','r');
print(f.read())
f.close()
如果上面再read的时候出现错误,文件对象就不能被正确的关闭,所以要作出异常处理:
try:
f = open(‘/xxx/file.txt','r')
print(f.read())
finally:
if f:
f.close()
这种类java的写法看起来很啰嗦,python给我们提供了精简版:
with open(‘/xxx/file.txt','r') as f:
print(f.read())
2、一次读取一行:
f.readlines()
使用这种方式读取配置文件比较好。
with open('/xxx/file.txt','r') as f:
for line in f.readlines():
print(line.strip()) # 把末尾的'\n'删掉
3、一次读取指定个数:
part = f.read(5)
一次读取指定的个数,因为python默认是读取UTF-8的文件,所以中文算一个字符,英文也算一个字符,
with open(‘/xxx/file.txt','r') as f:
part = f.read(5)
while part:
print(part)
part = f.read(5)
4、读取非UTF-8的文本文件:
如果文本文件不是UTF-8格式的,需要给open()函数传入encoding参数
f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')
5、读取二进制文件:
读取二进制文件,比如音乐、视频、图片等时,记得模式要为rb:
#读取二进制文件
with open(‘/xxx/test.png','rb') as f:
data = f.read()
print(data.__sizeof__())
其中data即为图片的所有字节数据,如果直接print(data)的话,是以16进制的形式输出来的。
二、写入文件内容
f.write('hello')
可以反复的调用write('')方法来向文本文件中写入文本,不过需要注意的是,是直接从头开始写,并且,所有的现代操作系统都是,写文件的时候,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。所以,一定要养成使用with的好习惯,因为with最后是肯定会调用close()方法的:
#写文件
with open(‘/xxx/file.txt', 'w') as f:
f.write('hello')
f.write('你好')
三、创建新文件
创建新文件时,只需要open要创建的文件路径,并且文件读取模式为'w'(注意必须为w,如果文件不存在,为r会报错),如果文件不存在,就会自动创建新的文件
with open(‘/xxx/testRename.txt', 'w') as file:
1、简单读取
需要知道的是,现代操作系统不允许程序直接读写磁盘,而是由操作系统来返回一个文件对象,所以,在获取到系统的文件对象后,还需要关闭。
读取文件的内容无非就是3个步骤:拿到文件对象,读取,关闭文件对象,对应python代码为
#第一个参数为文件的路径,第二个参数即为读取的模式
f = open(‘/xxx/file.txt','r');
print(f.read())
f.close()
如果上面再read的时候出现错误,文件对象就不能被正确的关闭,所以要作出异常处理:
try:
f = open(‘/xxx/file.txt','r')
print(f.read())
finally:
if f:
f.close()
这种类java的写法看起来很啰嗦,python给我们提供了精简版:
with open(‘/xxx/file.txt','r') as f:
print(f.read())
2、一次读取一行:
f.readlines()
使用这种方式读取配置文件比较好。
with open('/xxx/file.txt','r') as f:
for line in f.readlines():
print(line.strip()) # 把末尾的'\n'删掉
3、一次读取指定个数:
part = f.read(5)
一次读取指定的个数,因为python默认是读取UTF-8的文件,所以中文算一个字符,英文也算一个字符,
with open(‘/xxx/file.txt','r') as f:
part = f.read(5)
while part:
print(part)
part = f.read(5)
4、读取非UTF-8的文本文件:
如果文本文件不是UTF-8格式的,需要给open()函数传入encoding参数
f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')
5、读取二进制文件:
读取二进制文件,比如音乐、视频、图片等时,记得模式要为rb:
#读取二进制文件
with open(‘/xxx/test.png','rb') as f:
data = f.read()
print(data.__sizeof__())
其中data即为图片的所有字节数据,如果直接print(data)的话,是以16进制的形式输出来的。
二、写入文件内容
f.write('hello')
可以反复的调用write('')方法来向文本文件中写入文本,不过需要注意的是,是直接从头开始写,并且,所有的现代操作系统都是,写文件的时候,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。所以,一定要养成使用with的好习惯,因为with最后是肯定会调用close()方法的:
#写文件
with open(‘/xxx/file.txt', 'w') as f:
f.write('hello')
f.write('你好')
三、创建新文件
创建新文件时,只需要open要创建的文件路径,并且文件读取模式为'w'(注意必须为w,如果文件不存在,为r会报错),如果文件不存在,就会自动创建新的文件
with open(‘/xxx/testRename.txt', 'w') as file:
pass