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")

原文地址:https://www.cnblogs.com/xiajq/p/8733067.html

时间: 2024-10-31 19:32:01

python新手学习之文件读写之修改的相关文章

Python基础知识之文件读写与修改

基本操作 f = open("file1", "r")  # 打开文件 first_line = f.readline() # 读一行 data = f.read() # 读取剩下所有内容,文件大时候不要用 f.close()  #关闭文件 如果我们想循环文件,并且在第九行输出分割的话: for index, line in enumerate(file.readlines()):     if(index == 5):         print("--

.net学习笔记--文件读写的几种方式

在.net中有很多有用的类库来读写硬盘上的文件 一般比较常用的有: File:1.什么时候使用:当读写件大小不大,同时可以一次性进行读写操作的时候使用         2.不同的方式可以读写文件类型不一样. ReadAllBytes()  WriteAllByte():可以读写任意类型的文件 (里面封装的是FileStream)           ReadAllLines()  ReadAllText():(里面封装是StreamWriter,StreamReader),只能读写文本类型文件

python基础学习3-文件读写、集合、json、函数

  1       文件读写补充 文件修改 方法1:简单粗暴直接: 1.  先获取到文件里面的所有内容 2.  然后修改文件里面的内容 3.  清空原来文件里面的内容 4.  重新写入 f = open('test1.txt','r+') f.seek(0) all_data = f.read() new_data = all_data.replace('123','python') f.seek(0)           #将指针移到最前面 f.truncate()        #清空原来文

Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化

IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口.从磁盘读取文件到内存,就只有Input操作,反过来,把数据写到磁盘文件里,就只是一个Output操作. 由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题.举个例子来说,比如要把100M的数据写入磁盘,CPU输出100M的数据只需要0.01秒,可是磁盘要接收这10

python 简单的txt文件读写

1 读取txt文件.跟c相比,python的文件读写简直是方便的可怕 首先是读取文件 首先获得文件名称,然后通过 open函数打开文件,通过for循环逐行读出文件内容 #!python file by ninahao 10.30 'readfile.py--read and display text file' #get filename fname=raw_input('enter file name:') print #attempt to open file for reading try

Python新手学习基础之初识python——与众不同2

看完了Python的缩进,现在来看看Python的标识符.引号和注释. 标识符 关于Python的标识符,其实不是与众不同,只是有一定的规则. 标识符是编程时使用的名字.在Python中,标识符有几点要素: 第一个字符必须是字母或者下划线 _ : 标识符的的其他部分必须由数字.字母.下划线组成: 标识符对字母的大小写敏感. 引号 Python的字符串通常可以用单引号 ' ' .双引号 " " .双三引号 """ """或单三引

python基础操作_文件读写操作

#文件读写# r只能读不能写,且文件必须存在,w只能写不能读,a只能写不能读# w+是写读模式,清空原文件内容# r+是读写模式,没有清空原文件内容,# 只要有r,文件必须存在,只要有w,都会清空原文件# 如果在open的时候没有指定模式,那就是r的模式打开文件.# a+ 又能写又能读又不校验文件是否存在,还不清空原文件,完美啊# b是2进制的模式打开或者读写.如rb+ wb+ ab+# readline 读一行# readlines 读全部# writelens 写全部f=open('E:\i

python学习之文件读写

实现文件的读写 #! /usr/bin/python file_add = open('test.txt','a')for i in range(1,5): file_add.write("1.1.1.%d 255.255.255.255 %d  2.2.2.%d 255.255.255.168 \n" %(i,i,i))file_add.close() 期间遇到的问题: 1.字符串格式化问题—多个参数 -sh-4.1# ./add.py Traceback (most recent

python代码学习-有关文件处理的方法

文件操作:os.mknod("test.txt")        创建空文件fp = open("test.txt",w)     直接打开一个文件,如果文件不存在则创建文件 关于open 模式: w 以写方式打开, a 以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+ 以读写模式打开 w+ 以读写模式打开 (参见 w ) a+ 以读写模式打开 (参见 a ) rb 以二进制读模式打开 wb 以二进制写模式打开 (参见 w ) ab 以二进制追加模式打