码迷,mamicode.com
首页 > 编程语言 > 详细

【python3】 文件操作

时间:2019-01-03 10:58:43      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:run   utf-8   目录   没有   文件中   只读   字符串类型   port   使用   

文件操作

一: 只读、读写

 示例:

1 f = open("E:\人员名单.txt" , encoding="utf-8" , mode="r") 2 content = f.read() 3 print(content) 4 f.close()
 解析:
6 ? f / f_obj / obj / file_hl / file_hanlder : 变量、文件句柄 7 ? open : windows中的系统命令 8 ?? "E:\人员名单.txt" : 绝对路径(从根目录开始的路径) 9 #相对路径(同一个文件夹下的文件) 10 ??? mode 11 ## mode = "r" : 对文件只读 12 ## mode = "rb" : 一般用在非文字类型的文件:图片、视频,文件的上传和下载功能
13 ## mode = "r+" : 读写(先读后写)
13 ## mode = "r+b" : 读写以 byte 类型 14 15 ??? 读 的五种模式,返回字符串类型: 16  ① f.read() : 全部读出来 17  ② f.read(n): 若是 r 模式,则按照字符读取,只读取前n个字符 18 #若是 rb 模式,则按照字节读取 19  ③ f.readline() : 按行读 20  ④ f.readlines() : 每一行做为一个元素,存在列表中 21  ⑤ 推荐使用 22 ‘‘‘ 23 f = open("E:\人员名单.txt","r",encoding="utf-8") 24 for i in f: 25 print(i) 26 f.close() 27 ‘‘‘ 28 ?? f.close() : 将文件句柄/动作关闭,节省内存


‘‘‘常见报错分析: 1、UnicodeDecodeError : 存储的文件编码和打开的编码不一致; 2、SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 2-3: truncated \\UXXXXXXXX escape 路径前加 R 或 r 或 \\ 进行转义

 

二、只写、写读

示例:

① 通过 w 模式进行写操作
1 f = open("E:\人员名单.txt","w",encoding="utf-8") 2 f.write("牛六六\n孙七七") 3 f.close()
示例:
② 通过 wb 模式进行写操作(写入二进制文件)
1 f = open("E:\人员名单.txt","wb") 2 f.write("牛六六\n孙七七".encode("utf-8")) 3 f.close() 1 ? 只写的两种方式 : w wb
2 ? 写读 : w+ w+b
  (注 : 将原有内容删除之后重新写入内容,因光标在最后面,所有写完之后去读没有内容显示,可以在写之后将光标移动第一个(f.seek(0))再去读文件中的内容) 2 ? 若没有文件,则创建文件并写内容 3 ? 若有文件,则将原文件全部内容删除重新写内容(覆盖)

 

三、追加

示例:

1 f = open("E:\人员名单.txt","a",encoding="utf-8") 2 f.write("\n钱八八") 3 f.close() 4 5 ## 只追加 : a ab 6 ## 追加可读 :a+ a+b 7 ## 在光标后面追加写入内容

 

 四、常用方法

  • f.tell()  : 查询光标的位置(按照字节调整);
  • f.seek(m,n)  : 移动光标(按照字节调整) m:要移动的字节数,n:指定开始移动字节的参考位置;  
    •  0 : 参考位置为文件开头
    •  1 : 参考位置为当前所在位置
    •     2 : 参考位置设为文件结尾
  • f.close() : 一定一定一定要关闭文件,不然会占用资源;
  • f.read(n) : 读取前 n 个字符;
  • f.readline() : 读取一行;
  • f.readlines() : 读取文件全部行,每行作为一个元素,形成一个列表(适合读小文件)
  • f.write()  : 写入,不能自动换行;
  • f.writelines() : 写入列表内容,可以写入多行;
  • f.readable() : 是否可读,返回布尔值;
  • f.writeable() : 是否可写,返回布尔值;
  • f.truncate(n)  : 在原文件上截取 n 个字节;
  • f.name : 查看文件路径;
  • f.mode : 查看文件打开模式;
推荐使用的文件操作方法:

## 操作一个文件 1 with open("E:\人员名单.txt","r",encoding="utf-8") as f: 2 print(f.read())
## 操作多个文件 1 with open("E:\人员名单.txt","r",encoding="utf-8") as f1,2 open("E:\人员名单1.txt","r",encoding="utf-8") as f2: 3 print(f1.read()) 4 print(f2.read())

 

五、实例

### 题目:
肩背一匹布,手提一瓶醋,走了一里路,看见一只兔,卸下布,放下醋,去捉兔。跑了兔,丢了布,洒了醋。
存在电脑E盘的文件 绕口令.txt 中的内容如上, 将绕口令.txt 中的"一"改成"二"。

 思路:
 1、创建一个新文件
 2、读取原文件
 3、将原文件的内容通过你想要的方式进行更改,并写入新文件
 4、将原文件删除
 5、将新文件重命名原文件
1 import os 2 with open("E:\绕口令.txt",encoding="utf-8") as f1, 3 open("E:\绕口令(修改后).txt","w+",encoding="utf-8") as f2: 4 for i in f1: 5 i = i.replace("一","二") 6 f2.write(i) 7 os.remove("E:\绕口令.txt") 8 os.rename("E:\绕口令(修改后).txt","E:\绕口令.txt")

【python3】 文件操作

标签:run   utf-8   目录   没有   文件中   只读   字符串类型   port   使用   

原文地址:https://www.cnblogs.com/clamheart/p/10212428.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!