目录

1.文件操作实例

2.文件常用操作

3.with模块操作文件

常用实例,把文件里面的内容读出来做成字典的形式在做成字列表展示。

1.精简版。

lst = []
f = open("file01", mode="r", encoding="utf-8")
for line in f:
line1 = line.strip().split(",")
dic = {}
dic["id"] = line1[0]
dic["name"] = line1[1]
dic["price"] = line1[2]
lst.append(dic)
print(lst)

2.升级版。

f = open("file01", mode="r", encoding="utf-8")
title_str = f.readline().strip()
title_list = title_str.split(",")
print(title_list)
lst = []
for body in f:
body_str = body.strip().split(",")
print(body_str)
dic = {}
for i in range(len(title_list)):
dic[title_list[i]] = body_str[i]
lst.append(dic)
print(lst)

一. 文件读写追加以及修改

r:读  r+: 读写  rb: 以字节的形式读。一般用来操作图片视屏音乐等非文字信息。

1.读
f = open("file01", mode="r",encoding="utf-8")
content = f.read()
print(content)
close() ps:读文件but这种方式是读所有 如果文件太大会内存溢出
f = open("file01", mode="r",encoding="utf-8")
for line in f:
print(line) ps:一行一行读取
f = open("file01", mode="r",encoding="utf-8")
for line in f:
input("按回车往下浏览:")
print(line) ps:通过函数input()阻塞 让用户按下回车键继续往下浏览 2.读写
待补充.... 3.rb
f = open("file01", mode="rb")
content = f.read()
print(content) ps:只要有四个方法
read() 读
readline()读一行
readlines() 全部读并且以列表的形式呈现
readable() 判断是否有读的权限

w:写 w+:写读 wb:同上

注意:如果没有⽂文件. 则会创建⽂文件, 如果⽂文件存在. 则将原件中原来的内容删除, 再 写入新内容 。

1.w写
f = open("file02.txt", mode="w", encoding="utf-8")
f.write("Today is monday")
f.flush()
f.close() ps:写的时候最好用flush刷新。 2.wb模式下可以不指定打开⽂文件的编码. 但是在写⽂文件的时候必须将字符串串转化成utf-8的 bytes数据 。
f = open("file02.txt", mode="wb")
f.write("金毛狮王".encode("utf-8"))
f.flush()
f.close()

a:在文件的末尾追加内容 a+ 追加  ab:同上,不管在什么位置都是追加

f = open("file02.txt", mode="a",encoding="utf-8")
f.write("西游记")
f.flush()
f.close()

修改:修改文件实际上是把原来的删除了改名覆盖原来的那一份。

文件复制
f = open("file02.txt", mode="r",encoding="utf-8")
f2 = open("file03.txt",mode="w", encoding="utf-8")
for i in f:
f2.write(i) 文件修改
f = open("file02.txt", mode="r",encoding="utf-8")
f1 = open("file022.txt", mode="w",encoding="utf-8")
for i in f:
i = i.replace("西游记","西游记后传")
f1.write(i) f.close()
f1.flush()
f1.close()
import os
os.remove("file02.txt")
os.rename("file022.txt","file02.txt") 文件操作常见的函数
seek()移动光标的位置 0:开头 1:当前 2.结尾 ps:移动是以bytes为单位,如果是utf8字符集需要乘以三
tell()告诉当前光标的位置 中文算3个bytes 标点数字算一个
f = open("file02.txt", mode="r+",encoding="utf-8")
content = f.read()
print(f.tell())
f.seek(9)
print(f.tell()) truncate截断
f = open("file02.txt", mode="r+",encoding="utf-8")
content = f.seek(10)
print(f.truncate())
print(content)

二. with模块实现文件的操作

import os
with open("file03.txt", mode="r",encoding="utf-8") as f1,\
open("file033.txt",mode="w", encoding="utf-8") as f2:
for line in f1:
f2.write(line)
ps: with的操作不用写close() 会自己帮你检查。

day03 文件操作的更多相关文章

  1. Python基础【day03】:文件操作(六)

    一.概述 我们工作中需要经常操作文件,下面就讲讲如何用Python操作文件 1.文件操作的流程: 打开文件,得到文件句柄赋值给一个变量 通过文件句柄,对文件进行操作 关闭文件 二.入门 1.语法 op ...

  2. day03 set集合,文件操作,字符编码以及函数式编程

    嗯哼,第三天了 我们来get 下新技能,集合,个人认为集合就是用来list 比较的,就是把list 转换为set 然后做一些列表的比较啊求差值啊什么的. 先看怎么生成集合: list_s = [1,3 ...

  3. day03深浅拷贝、文件操作和函数初识

    一.赋值.浅拷贝与深拷贝 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法, ...

  4. Day05 (黑客成长日记) 文件操作系列

    文件操作: 1.以什么编码方式输出,就以什么编码方式打开 f = open('d:\文件操作.txt',mode='r',encoding='GB2312') G = f.read() print(G ...

  5. day03_雷神_文件操作

    day03 上周回顾_问题总结: 地址值: li = [] name = ['name','price','count'] dic = {} #如果这里定义空列表,后边的dic[name[i]] = ...

  6. Python基础-week03 集合 , 文件操作 和 函数详解

    一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...

  7. day08——文件操作

    day08 文件操作: open() :打开 f (文件句柄)= open("文件的路径(文件放的位置)",mode="操作文件的模式",encoding=&q ...

  8. 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档

    .net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...

  9. 野路子出身PowerShell 文件操作实用功能

    本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...

随机推荐

  1. clusterware启动顺序——CSS

    CSS层面 1.ocssd.bin守护进程 该层面最主要的工作就是启动ocssd.bin守护进程.使本地节点能够成功地加入集群.ocssd.bin守护进程的启动过程可以通过以下的图形进行描述. ::: ...

  2. jsp脚本的九个内置对象

    JSP脚本中包含9个内置对象, 这9个内置对象都是Servlet API 接口实例, 只是JSP规范对它们进行了默认初始化(由JSP 页面对应Servlet 的jspService()方法来创建这些实 ...

  3. java多线程中的调度策略

    两种线程的调度模式: 抢占式调度: 抢占式调度指的是每条线程执行的时间.线程的切换都由系统控制,系统控制指的是在系统某种运行机制下,可能每条线程都分同样的执行时间片,也可能是某些线程执行的时间片较长, ...

  4. Visual Studio项目属性的生产平台,如何改为X64?

    如图,我把平台改为x64,可是按打叉,退出后,再进入项目属性,还是 x86,没变. 解决方法: 选择 Setup1项目, 选择"属性" ->选择 "配置管理器&qu ...

  5. 运维chroot语法

    chroot命令 chroot命令用来在指定的根目录下运行指令.chroot,即 change root directory (更改 root 目录).在 linux 系统中,系统默认的目录结构都是以 ...

  6. 怎样检测TCP/UDP端口的连通性

    1 TCP端口的连通性 TC端口的连通性,一般通过telnet检测: TCP协议是面向连接的,可以直接通过telnet命令连接 telnet host-ip port 2 UDP端口的连通性 因为公司 ...

  7. re模块(正则表达式)

    re,findall("匹配正则","内容") #所有满足条件的结果都返回到一个列表里 ret = re.search(“匹配规则”,“内容”) #返回 匹配到 ...

  8. nginx和resin一二三

    最近听我们这边的开发讲解了一小下nginx和resin,现在Mark一下,可能不专业,但是对于我来说通俗易懂就好哈哈哈. 首先说服务器,服务器这个东西吧它是干啥的呢,你写的页面只能在你自己的电脑上打开 ...

  9. 解决 Unknown action buyram in contract eosio 错误

  10. libnids校验和引起回放包不能正常捕捉

    如题 取消校验和校验即可: struct nids_chksum_ctl temp;temp.netaddr = 0;temp.mask = 0;temp.action = 1;nids_regist ...