文件操作

一: 只读、读写

 # 示例:

 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(r:文件的指针将放在文件的开头)
11 ## mode = "r" : 对文件只读
12 ## mode = "rb" : 一般用在非文字类型的文件:图片、视频,文件的上传和下载功能
13 ## mode = "r+" : 读写(先读后写)
13 ## mode = "r+b" : 读写以 byte 类型
14
15 注:以 b 模式操作的文件,不用加上“encoding = "utf-8"”。
15
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() : 将文件句柄/动作关闭,节省内存
29 ♦ f.name : 打印文件的路径
30 ♦ f.mode : 打印文件的模式
31 ♦ f.closed : 判断文件是否关闭

二、只写、写读

① 通过 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))再去读文件中的内容)
3 ♦ 若没有文件,则创建文件并写内容
4 ♦ 若有文件,则将原文件全部内容删除重新写内容(覆盖)

三、追加

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

四、常用方法

  • 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 个字节(通常在 a 或 a+ 的模式上运用);
  • 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、 将新文件重命名原文件

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") ## 题目二:
文件a.txt内容:每一行内容分别为商品名字,价钱,个数。
apple 10 3
tesla 100000 1
mac 3000 2
lenovo 30000 3
chicken 10 3
通过代码,将其构建成这种数据类型:
[{'name':'apple','price':10,'amount':3},{'name':'tesla','price':1000000,'amount':1}......]
并计算出总价钱。 1)
list = [] with open("tester","r",encoding="utf-8") as f:
4 for i in f.readlines():
5 i = i.strip().split(" ")
tuple = {}
tuple["name"] = i[0]
tuple["price"] = i[1]
tuple["amount"] = i[2]
list.append(tuple)
print(list)
sum1 = 0
for j in list:
price = int(j["price"])
count = int(j["amount"])
sum = price * count
sum1 = sum1 + sum
print(sum1) 2)优化:
list = []
with open("file2","r",encoding="utf-8") as f:
for i in f:
list1 = i.strip().split(" ")
dic = {"name":list1[0],"price":int(list1[1]),"amount":int(list1[2])} ### 直接创建有键值对的字典
list.append(dic)
print(list)
sum = 0
for j in list:
sum += j["price"] * j["amount"] ### 定义sum的值,使用+=就不会报错
print(sum) 3)利用zip()函数的做法:
list = []
list1 = ["name","price","amount"]
with open("file2","r",encoding="utf-8") as f:
for i in f:
list2 = i.strip().split(" ") ### 将字符串去除空格转换成列表
dic = dict(zip(list1,list2)) ### 利用zip()函数将list1和list2打包,并转换成字典格式
list.append(dic) ### 将字典添加到列表中
print(list)

【python 3】 文件操作的更多相关文章

  1. Python :open文件操作,配合read()使用!

    python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...

  2. Python 常见文件操作的函数示例(转)

    转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...

  3. 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容

     孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...

  4. 孤荷凌寒自学python第三十三天python的文件操作初识

     孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...

  5. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  6. python中文件操作的其他方法

    前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...

  7. Python常见文件操作的函数示例

    # -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...

  8. python的文件操作及简单的用例

    一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...

  9. python基本文件操作

    python文件操作 python的文件操作相对于java复杂的IO流简单了好多,只要关心文件的读和写就行了 基本的文件操作 要注意的是,当不存在某路径的文件时,w,a模式会自动新建此文件夹,当读模式 ...

  10. [转]python file文件操作--内置对象open

    python file文件操作--内置对象open   说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前 ...

随机推荐

  1. weblogic的基础安装

    安装java环境 不能使用centos自带的openjdk  必须使用源码安装 把下载的jdk-8u181-linux-x64.tar 解压到 /usr/src目录下      tar zxvf jd ...

  2. 微信小程序wx.uploadFile 上传文件 的两个坑

    fileUpload: function (tempFilePath) { var that = this;//坑1: this需要这么处理 wx.uploadFile({ url: url地址, / ...

  3. Netflix是怎样运行的(极度简化版)— 每次点击播放按钮背后的复杂东西

    Netflix是怎样运行的(极度简化版)- 每次点击播放按钮背后的复杂东西 本文摘译自 How Netflix works: the (hugely simplified) complex stuff ...

  4. 2018-2019-2 网络对抗技术 20165321 Exp2 后门原理与实践

    基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 答:网络钓鱼植入木马. (2)例举你知道的后门如何启动起来(win及linux)的方式? 答:绑定在合法软件上启动. (3)Met ...

  5. 正则表达式-----re库

    1.正则表达式的概念 a.为什么要用正则? 用字符串匹配也是可以的: startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False.如果参数 be ...

  6. 安装mongodb服务

    摘要:https://www.cnblogs.com/z-x-y/p/9305635.html 欢迎转载,转载请标明出处:https://www.cnblogs.com/z-x-y/p/9305635 ...

  7. 关于iframe的一些操作

    用于自己学习,本身对于js的一些东西没有深入了解,也是用到再去查 1.如果现在在一个页面,想要获取这个页面中的iframe中嵌入的页面中的一个指定id的div var iframeObj = docu ...

  8. python爬虫简单的添加代理进行访问

    在使用python对网页进行多次快速爬取的时候,访问次数过于频繁,服务器不会考虑User-Agent的信息,会直接把你视为爬虫,从而过滤掉,拒绝你的访问,在这种时候就需要设置代理,我们可以给proxi ...

  9. 【转】数据处理常用的sql语句整理

    一下语句都是基于 mysql数据库 查询是否使用索引 explain  select * FROM t_table1; 结果列的含义: table:此次查询操作是关联哪张数据表 type:连接查询操作 ...

  10. 【转】基于Jenkins实现持续集成【持续更新中】

    知识预览 持续集成 Jenkins安装 Jenkins插件 Jenkins配置 Jenkins备份与恢复 发布PHP项目 SVN 发布Maven项目 按版本发布 远程管理 War文件部署设置 任务 J ...