Python文件IO操作详解:从基础读写到with语句的最佳实践
本文详细解析Python中的文件IO操作。涵盖使用print输出、raw_input与input读取键盘输入。重点讲解open函数的参数模式、file对象属性及close方法。通过write和read方法演示文件写入与读取,并强调使用with语句自动管理文件资源的重要性,确保数据完整写入磁盘。
Python文件IO操作
在Python中,将结果输出到屏幕是交互的基础。
最直接的输出方式是利用print语句。该语句支持接收零个或多个表达式,各表达式之间使用逗号进行分隔,从而灵活地展示数据。
从键盘读取输入
Python内置了两个函数用于从标准输入(默认即键盘)读取一行文本,具体用法如下所示:
- raw_input
- input
raw_input函数详解
raw_input([prompt])函数负责从标准输入读取一行内容,并返回一个字符串。需要注意的是,返回的字符串会自动去除末尾的换行符。
str = raw_input("请输入:")
print( "你输入的内容是: ", str)
>>>
请输入:(这里输入你要输入的内容)
(这里打印出来的是你上面输出的内容)
input函数详解
input([prompt])函数的功能与raw_input([prompt])高度相似,主要区别在于input函数允许接收并执行一个Python表达式作为输入内容。
文件的打开与关闭
在进行任何文件读写操作前,必须首先调用Python内置的open()函数来打开目标文件,从而创建一个file对象。只有获取了该对象,才能调用相关方法进行后续的读写操作。
open函数语法
必须使用Python内置的open()函数打开文件,生成file对象后,方可调用其方法进行读写。
file object = open(file_name [, access_mode][, buffering])
- file_name参数:该变量是一个字符串,包含需要访问的文件名称。
- access_mode参数:此参数决定了打开文件的具体模式,例如只读、写入或追加等。所有可选取值见下文完整列表。该参数非必填,若省略,默认的文件访问模式为只读(r)。
- buffering参数:若设置buffering为0,则不进行缓冲;若设为1,则在访问文件时进行行缓冲;若设为大于1的整数,则表示缓冲区的缓冲大小;若设为负值,则缓冲区大小由系统默认决定。
以下是不同模式打开文件的完整列表:


file对象的属性
当文件被成功打开后,你将获得一个file对象,通过该对象可以获取关于该文件的各类信息。
以下是与file对象相关的所有属性列表:

具体实例如下所示:
fo = open("xiaochan.txt", "w")
print ("文件名: ", fo.name)
print ("是否已关闭 : ", fo.closed)
print ("访问模式 : ", fo.mode)
print ("末尾是否强制加空格 : ", fo.softspace)
输出:
文件名: xiaochan.txt
是否已关闭 : False
访问模式 : w
末尾是否强制加空格 : 0
close()方法
File对象的close()方法会刷新缓冲区中所有尚未写入的信息,并关闭该文件。关闭后,将无法再对该文件进行写入操作。当某个文件对象的引用被重新指定给另一个文件时,Python会自动关闭之前的文件。养成使用close()方法主动关闭文件的习惯是非常必要的。
# 打开一个文件
fo = open("xiaochan.txt", "w")
print( "文件名: ", fo.name)
# 关闭打开的文件
fo.close()
file对象提供了多种方法,使文件访问更加便捷。我们可以使用read()和write()方法来分别执行读取和写入文件的操作。
write()方法
write()方法可以将任意字符串写入已打开的文件。需特别注意,Python中的字符串不仅包含文本,还可以是二进制数据。此外,write()方法不会在字符串末尾自动添加换行符('\n')。使用'w'模式打开文件仅用于写入,具体实例如下:
# 打开一个文件
fo = open("xo.txt", "w")
fo.write( "www.soyboke.com\nVery good blog!\n")
# 关闭打开的文件
fo.close()
输出:
www.runoob.com!
Very good site!
read()方法
read()方法用于从已打开的文件中读取字符串。同样需要注意,Python字符串可以包含二进制数据,而不仅仅是文本。以下实例演示了如何读取文件(此处使用了前文提到的xo.txt文件):
fileObject.read([count])
在此语法中,传递的参数指定了从已打开文件中读取的字节数量。该方法从文件开头开始读取。如果未传入count参数,它将尝试读取尽可能多的内容,直至文件末尾。
# 打开一个文件
fo = open("xiaochan.txt", "r+")
str = fo.read(10)
print ("读取的字符串是 : ", str)
# 关闭打开的文件
fo.close() 输出示例:
www.soybok
Python with open as语句
虽然可以反复调用write()来写入文件,但务必记得调用f.close()来关闭文件。在写入文件时,操作系统通常不会立即将数据写入磁盘,而是先存入内存缓存,待空闲时再慢慢写入。只有调用close()方法时,操作系统才保证将未写入的数据全部写入磁盘。若忘记调用close(),可能导致数据仅部分写入磁盘,其余部分丢失。因此,使用with语句是更为稳妥的做法:
使用with open as读取文件的格式如下:
with open('a.txt', 'w') as f:
f.write('1234567890\n')
至此,关于详解Python中IO操作方法的介绍已结束。如需了解更多Python IO操作相关内容,请搜索本站历史文章或继续浏览后续相关文章,感谢大家的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













