python新手学习之文件读写之修改
文件除r、w、a方式打开外,还可以有多种组合方式如r+ w+ a+等多种方式
1、r+ 读写模式介绍,开始读是从一行开始读,写永远从最后开始写(类似于追加)
#
f = open("test.txt","r+",encoding ="utf-8")
f.readline()
f.readline()
f.readline()
# 不管如何读或者是seek。文件永远从尾部追加。写时候,不会影响读光标位置。
print("当前光标位置:",f.tell())
f.write("\n测试r+11")
print("第一次插入当前光标位置:",f.tell())
print(f.readline())
print("当前光标位置:",f.tell())
f.write("\n测试r+22")
print("第二次当前光标位置:",f.tell())
print(f.readline())
print(f.read()) E:\Users\xiajinqi\PycharmProjects\twoday\venv\Scripts\python.exe E:/Users/xiajinqi/PycharmProjects/twoday/file2.py
当前光标位置: 51
第一次插入当前光标位置: 423
追加2 当前光标位置: 423
第二次当前光标位置: 435
追加3 追加4
追加5
追加6
追加7
追加8
追加9
追加10测试r+
测试r+
测试r+
测试r+
测试r+
测试r+
测试r+
测试r+
测试r+
测试r+11
测试r+22
测试r+11
测试r+22
测试r+11
测试r+22
测试r+11
测试r+22
测试r+11
测试r+22
测试r+11
测试r+22
测试r+11
测试r+22
测试r+11
测试r+22
2、w+ 写读(创建一个新的文件),读完以后,光标会在尾部,读时候需要从seek.并且读不影响写入到位置。在尾部写入。
# w+相对使用较少。创建一个新的文件读写
f = open("test2.txt","w+",encoding='utf-8')
f.write("1----------\n")
f.write("2----------\n")
f.write("3----------\n")
print(f.readline())
print(f.tell())
f.seek(0)
print(f.readline())
f.write("test----------\n")
f.seek(0)
print(f.read()) E:\Users\xiajinqi\PycharmProjects\twoday\venv\Scripts\python.exe E:/Users/xiajinqi/PycharmProjects/twoday/file2.py 39
1---------- 1----------
2----------
3----------
test---------- Process finished with exit code 0
3 a + 追加读。不会创建新文件。在文件后面追加。
# w+相对使用较少。创建一个新的文件读写
f = open("test2.txt","a+",encoding='utf-8')
f.write("1----------\n")
f.write("2----------\n")
f.write("3----------\n")
print(f.readline())
print(f.tell())
f.seek(0)
print(f.readline())
f.write("test----------\n")
f.seek(0)
print(f.read())
4、rb和wb 以二进制方式读写。
# w+相对使用较少。创建一个新的文件读写
f = open("test2.txt","rb")
print(f.readline())
f.close() #.encode() 默认使用
f = open("test2.txt","wb")
print(f.write("binnary".encode()))
f.close() f = open("test2.txt","rb")
print(f.readline())
f.close()
5、文件修改,将文件中的内容替换。
# 将流年未亡香樟依旧 中 将流年未亡 改为时光已逝
old_file = open("test.txt",'r',encoding="utf-8")
new_file = open("test.txt.bak","w",encoding="utf-8") for line in old_file :
if "流年未亡香樟依旧" in line :
line = line.replace("流年未亡香樟依旧","时光已逝香樟依旧")
new_file.write(line)
old_file.close()
new_file.close() 歌词内容: 时光雨洒落在你我心里
消失了感情在脸上留守
时光已逝香樟依旧 夏天终于走到了最后 多少的执着输给了时间 多少的泪水流过了青春
5、python with open("test.txt","r",encoding:"utf-8") as f 的使用
with open("test.txt",'r',encoding="utf-8") as f :
print(f.read())
#打开多个文件
with open("test.txt",'r',encoding="utf-8") as f1 ,\
open("test.txt",'r',encoding="utf-8") as f2 :
print(f.read())
6、python实现shel的替换查找工作
# Author : xiajinqi
import sys
operotor_type = sys.arg[1]
find_file = sys.argv[2]
find_str = sys.argv[3]
replace_str = sys.arg[4] if operotor_type == 'f' :
with open(find_file, 'r+', encoding="utf-8") as f:
for line in f:
if find_str in line:
print(line)
else:
print("查找的内容不存在")
elif operotor_type == 'r' :
with open(find_file, 'r+', encoding="utf-8") as f1,\
open("test.bak", 'w+', encoding="utf-8") as f2:
for line in f1:
if find_str in line:
line =line.replace(find_file,find_str,replace_str)
f2.wirte(line)
else :
print("usage:python find.py f/r filename findstr replacestr")
python新手学习之文件读写之修改的更多相关文章
- Python模块学习filecmp文件比较
Python模块学习filecmp文件比较 filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单.python标准库还提供了difflib模块用于比较文件的内容.关于dif ...
- Python新手学习raise用法
当程序出现错误时,系统会自动引发异常.除此之外,Python也允许程序自行引发异常,自行引发异常使用 raise 语句来完成. 很多时候,系统是否要引发异常,可能需要根据应用的业务需求来决定,如果程序 ...
- python学习之文件读写,序列化(json,pickle,shelve)
python基础 文件读写 凡是读写文件,所有格式类型都是字符串形式传输 只读模式(默认) r f=open('a.txt','r')#文件不存在会报错 print(f.read())#获取到文件所 ...
- python文件读写及修改
转载:https://www.cnblogs.com/zhxwind/p/8761618.html 文件的读写有三种形式:读.写和追加. 一.读模式 r 和读写模式 r+ 1.读模式 r 读模式r特点 ...
- python笔记(三)---文件读写、修改文件内容、处理json、函数
文件读写(一) #r 只读,打开文件不存在的话,会报错 #w 只写,会清空原来文件的内容 #a 追加写,不会请求,打开的文件不存在的话,也会帮你新建的一个文件 print(f.read()) #获取到 ...
- python学习之文件读写入门(文件读的几种方式比较)
1.文件读写简单实例:(以w写的方式打开一个文件,以r读一个文件) # Author : xiajinqi # 文件读写的几种方式 # 文件读写 f = open("D://test.txt ...
- 【Python】[IO编程]文件读写,StringIO和BytesIO,操作文件和目录,序列化
IO在计算机中指Input/Output,也就是输入和输出. 1.文件读写,1,读文件[使用Python内置函数,open,传入文件名标示符] >>> f = open('/User ...
- Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化
IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口.从 ...
- python 简单的txt文件读写
1 读取txt文件.跟c相比,python的文件读写简直是方便的可怕 首先是读取文件 首先获得文件名称,然后通过 open函数打开文件,通过for循环逐行读出文件内容 #!python file by ...
随机推荐
- 监控DAG状态
Add-PSSnapin microsoft.exchange* Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 $server ...
- 记一次JVM调优之旅(斗争full gc)
俗话说技多不压身,当年苦读<深入理解JVM>还专门整理了笔记,现在就用上了- 笔记 http://www.cnblogs.com/syjkfind/p/3901774.html [症状] ...
- 【Z】扩展阿里巴巴Java开发规约插件
https://blog.csdn.net/u014513883/article/details/79186893 1.前言 工作中难免会遇到维护别人代码的情况,那么首先就得看懂别人写的代码.如果对方 ...
- [EffectiveC++]item34:区分接口继承和实现继承
[EffectiveC++]item34:区分接口继承和实现继承
- 轻松bypass360网站卫士WAFSQL注入防护
随便网上找了一个网站,只是测试一下,没有干非法的事情! code 区域 http://www.py-guanyun.com/CompHonorBig.asp?id=49 code 区域 http:// ...
- sql 获取每个分组的前N条记录的写法
SELECT * FROM ( --根据 tb表的name进行分组,根据年龄排序 SELECT * , ROW_NUMBER() OVER ( PARTITION BY name ORDER BY a ...
- 支持FreeMarker需要哪些JAR包?
FreeMarker所需的全部jar包,Jar包:struts2-core-2.0.11.2.jar,xwork-2.0.5.jar,ognl-2.6.11.jar,freemarker-2.3.8. ...
- Django 导出csv文件 中文乱码问题
import csvimport codecsimport datetimefrom django.db import connectionfrom django.contrib.auth.model ...
- [cocos2d-x]-会动的精灵
小鸟一直在扑翅膀的代码块: auto sprite = Sprite::create(); Animation *animation = Animation::create(); animation- ...
- 20165322 第九周 实现mypwd
实现mypwd 学习pwd man pwd 该命令用来显示目前所在的工作目录 参数 -P显示当前目录的物理路径 -L显示当前目录的连接路径 man -k dir | grep 2 由图可知,可以用ge ...