“Python打开文件”的版本间的差异
来自CloudWiki
(创建页面,内容为“==open函数的格式== open(file, mode='r', buffering=-1, encoding=None, errors=None,newline=None, closefd=True, opener=None) *file参数指定了被打开的文…”) |
小 (Cloud17移动页面Python内置函数open至Python打开文件) |
||
(未显示同一用户的7个中间版本) | |||
第1行: | 第1行: | ||
− | ==open函数的格式== | + | ==Python读写文件== |
+ | ===open函数的格式=== | ||
open(file, mode='r', buffering=-1, encoding=None, errors=None,newline=None, closefd=True, opener=None) | open(file, mode='r', buffering=-1, encoding=None, errors=None,newline=None, closefd=True, opener=None) | ||
第7行: | 第8行: | ||
*encoding参数指定对文本进行编码和解码的方式,只适用于文本模式,可以使用Python支持的任何格式,如GBK、utf8、CP936等等。 | *encoding参数指定对文本进行编码和解码的方式,只适用于文本模式,可以使用Python支持的任何格式,如GBK、utf8、CP936等等。 | ||
− | ==文件打开模式== | + | ===文件打开模式=== |
文件打开模式: | 文件打开模式: | ||
*[[文件:python7-1.png]] | *[[文件:python7-1.png]] | ||
− | ==使用方法== | + | ===使用方法=== |
*如果执行正常,open()函数返回1个文件对象,通过该文件对象可以对文件进行读写操作。如果指定文件不存在、访问权限不够、磁盘空间不足或其他原因导致创建文件对象失败则抛出异常。 | *如果执行正常,open()函数返回1个文件对象,通过该文件对象可以对文件进行读写操作。如果指定文件不存在、访问权限不够、磁盘空间不足或其他原因导致创建文件对象失败则抛出异常。 | ||
第18行: | 第19行: | ||
*当对文件内容操作完以后,一定要关闭文件对象,这样才能保证所做的任何修改都确实被保存到文件中。 | *当对文件内容操作完以后,一定要关闭文件对象,这样才能保证所做的任何修改都确实被保存到文件中。 | ||
f1.close() | f1.close() | ||
+ | |||
+ | 例题: | ||
+ | <nowiki>s = 'Hello world\n文本文件的读取方法\n文本文件的写入方法\n' | ||
+ | fw = open('sample.txt',"w") | ||
+ | fw.write(s) | ||
+ | fw.close() | ||
+ | |||
+ | fr =open('sample.txt',"r") | ||
+ | print(fr.read()) | ||
+ | fr.close() | ||
+ | </nowiki> | ||
+ | |||
+ | ==上下文管理语句with== | ||
+ | 在实际开发中,读写文件应优先考虑使用上下文管理语句with,关键字with可以自动管理资源,不论因为什么原因(哪怕是代码引发了异常)跳出with块,总能保证文件被正确关闭,并且可以在代码块执行完毕后自动还原进入该代码块时的上下文,常用于文件操作、数据库连接、网络连接、多线程与多进程同步时的锁对象管理等场合。 | ||
+ | <nowiki> | ||
+ | with open(filename, mode, encoding) as fp: | ||
+ | #这里写通过文件对象fp读写文件内容的语句 | ||
+ | </nowiki> | ||
+ | *上下文管理语句with还支持下面的用法: | ||
+ | <nowiki>with open('test.txt', 'r') as src, open('test_new.txt', 'w') as dst: | ||
+ | dst.write(src.read())</nowiki> | ||
+ | |||
+ | 所以,上面那个例子用上下文语句可以这么写: | ||
+ | <nowiki>s = 'Hello world\n文本文件的读取方法\n文本文件的写入方法\n' | ||
+ | with open('sample.txt',"w") as fw: | ||
+ | fw.write(s) | ||
+ | |||
+ | with open('sample.txt',"r") as fr: | ||
+ | print(fr.read())</nowiki> | ||
返回 [[文件和数据格式化(输入与输出)]] | 返回 [[文件和数据格式化(输入与输出)]] |
2018年5月2日 (三) 01:28的最新版本
Python读写文件
open函数的格式
open(file, mode='r', buffering=-1, encoding=None, errors=None,newline=None, closefd=True, opener=None)
- file参数指定了被打开的文件名称。
- mode参数指定了打开文件后的处理方式。
- buffering参数指定了读写文件的缓存模式。0表示不缓存,1表示缓存,如大于1则表示缓冲区的大小。默认值是缓存模式。
- encoding参数指定对文本进行编码和解码的方式,只适用于文本模式,可以使用Python支持的任何格式,如GBK、utf8、CP936等等。
文件打开模式
文件打开模式:
使用方法
- 如果执行正常,open()函数返回1个文件对象,通过该文件对象可以对文件进行读写操作。如果指定文件不存在、访问权限不够、磁盘空间不足或其他原因导致创建文件对象失败则抛出异常。
f1 = open( 'file1.txt', 'r' ) # 以读模式打开文件 f2 = open( 'file2.txt', 'w') # 以写模式打开文件
- 当对文件内容操作完以后,一定要关闭文件对象,这样才能保证所做的任何修改都确实被保存到文件中。
f1.close()
例题:
s = 'Hello world\n文本文件的读取方法\n文本文件的写入方法\n' fw = open('sample.txt',"w") fw.write(s) fw.close() fr =open('sample.txt',"r") print(fr.read()) fr.close()
上下文管理语句with
在实际开发中,读写文件应优先考虑使用上下文管理语句with,关键字with可以自动管理资源,不论因为什么原因(哪怕是代码引发了异常)跳出with块,总能保证文件被正确关闭,并且可以在代码块执行完毕后自动还原进入该代码块时的上下文,常用于文件操作、数据库连接、网络连接、多线程与多进程同步时的锁对象管理等场合。
with open(filename, mode, encoding) as fp: #这里写通过文件对象fp读写文件内容的语句
- 上下文管理语句with还支持下面的用法:
with open('test.txt', 'r') as src, open('test_new.txt', 'w') as dst: dst.write(src.read())
所以,上面那个例子用上下文语句可以这么写:
s = 'Hello world\n文本文件的读取方法\n文本文件的写入方法\n' with open('sample.txt',"w") as fw: fw.write(s) with open('sample.txt',"r") as fr: print(fr.read())