python学习(十四)文件操作

本文详细介绍了Python中文件操作的基本步骤,包括使用open()函数以读写模式打开文件、设置缓冲区和编码,以及如何确保文件在操作后正确关闭。强调了使用with语句进行文件操作的优势,它可以确保文件在发生异常时也能得到妥善关闭。通过示例展示了读写文本文件的方法,如读取文件内容、按行读取、写入文件等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 文件内容操作三部曲:打开、读写、关闭

open(file, mode='r', buffering=-1, encoding=None, errors=None,
newline=None, closefd=True, opener=None)

 文件名指定了被打开的文件名称。

 打开模式指定了打开文件后的处理方式。

 缓冲区指定了读写文件的缓存模式。0表示不缓存,1表示缓存,如大于1则表 示缓冲区的大小。默认值是缓存模式。

 参数encoding指定对文本进行编码和解码的方式,只适用于文本模式,可以 使用Python支持的任何格式,如GBK、utf8、CP936等等。

 如果执行正常,open()函数返回1个可迭代的文件对象, 通过该文件对象可以对文件进行读写操作。如果指定文件 不存在、访问权限不够、磁盘空间不够或其他原因导致创 建文件对象失败则抛出异常。

 下面的代码分别以读、写方式打开了两个文件并创建了与 之对应的文件对象。

f1 = open( 'file1.txt', 'r' )
f2 = open( 'file2.txt', 'w')

 当对文件内容操作完以后,一定要关闭文件对象,这样才 能保证所做的任何修改都确实被保存到文件中。

f1.close()

  需要注意的是,即使写了关闭文件的代码,也无法保证文 件一定能够正常关闭。例如,如果在打开文件之后和关闭 文件之前发生了错误导致程序崩溃,这时文件就无法正常 关闭。在管理文件对象时推荐使用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 fp: #默认使用cp936编码
  fp.write(s)
with open('sample.txt') as fp: #默认使用cp936编码
  print(fp.read())


#输出结果
Hello world
文本文件的读取方法
文本文件的写入方法

 

读取并显示文本文件的前5个字符。

with open('sample.txt', 'r') as fp:
   s = fp.read(5) #读取文件的前5个字符
print('s=',s)
print('字符串s的长度(字符个数)=', len(s))

#运行结果
s= Hello
字符串s的长度(字符个数)= 5

读取并显示文本文件所有行。(按行读取文件

with open('sample.txt') as fp: #假设文件采用CP936编码
   for line in fp: #文件对象可以直接迭代
       print(line)

#运行结果
Hello world
文本文件的读取方法
文本文件的写入方法

 按行写入文件

f.writelines(lists) 是不换行的写入,可用以下方法在写入时换行。
 
方法一:
for line in lists:
f.write(line+'\n')
 
方法二:
lists=[line+"\n" for line in lists]
f.writelines(lists)
 
方法三:
f.write('\n'.join(lists))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值