首页 > 技术文章 > Python 文件的基本操作

bocaimao 2019-02-28 12:09 原文

打开文件的模式有:

  • r,只读模式(默认)。
  • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
  • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

"+" 表示可以同时读写某个文件

  • r+,可读写文件。【可读;可写;可追加】
  • w+,写读
  • a+,同a

"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)

  • rU
  • r+U

"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

  • rb
  • wb
  • ab

文件修改
因为文件的读写限制,若相对文件进行修改。
思路:打开文件(只读r),创建新文件(w),读取原文件,对其循环查找需要修改的行,并写入新文件中。关闭文件。
 
 
问题;使用spyder不能够完成内容正常写入新文件中
 
解决方法:
1.起初认为可能是文件数量没有达到写入内存的要求,执行f.flush后,仍旧不能写入。
2.可能spyder中有某种设置,使用单独Python3.5进行检测。写入成功。
 
程序一:
#实现简单的shell和sed替换

with语句

为了避免打开文件后忘记关闭,可以通过管理上下文,当with代码块执行完毕时,内部会自动关闭并释放文件资源。

Python2.7之后with可以同时打开多个文件,可以同时对多个文件的上下文进行管理。
 
1 #文件with语句,防止忘记关闭文件,占用不必要的内存.文件执行完后自动关闭
2 #f = open("filetext2",'r',encoding='GBK')
3 with open("filetest.txt",'r',encoding='GBK') as f\
4        open("filetest.txt",'r',encoding='GBK') as f2:
5     for line in f:    
6         print(line)        

 

推荐阅读