㈠ python读取txt时被修改
有少量数据存在txt文件中,如何进行读取、写入和修改呢,今天小编就分享下:
python常用的读取文件函数有三种read()、readline()、readlines()
1、read() : 一次性读取所有文本
with open("1.txt", "r", encoding='utf-8') as f: #打开文本
data = f.read() #读取文本
print(data)
2、readline() : 读取行的内容
with open('1.txt', 'r', encoding='utf-8') as f:
data = f.readline()
print(data)
3、readlines():读取全部内容,以数列的格式返回结果,可以配合for循环使用。
with open('1.txt', 'r', encoding='utf-8') as f:
data = f.readlines()
print(data)
image.png
with open('1.txt', 'r', encoding='utf-8') as f:
for i in f.readlines():
i = ann.strip('\n') #去除文本中的换行符
print(i)
4、with open()写法与open()的区别
1666058828369926.png
image.png
open()完成后必须调用close()方法关闭文件,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件
数量也是有限的,由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。with open()则可以避免这样的情况。
5、python文件读写模式
r : 读取文件,若文件不存在则会报错
w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件
a : 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾
r+ : 可读、可写,文件不存在也会报错,写操作时会覆盖
w+ : 可读,可写,文件不存在先创建,会覆盖
a+ : 可读、可写,文件不存在先创建,不会覆盖,追加在末尾
rb:以二进制方式打开,只能读取文件。如果文件不存在,会发生异常
wb:以二进制方式打开,只能写入文件。如果文件不存在,创建该文件; 如果文件存在,会清空,在打开(覆盖)
rt:以文本读方式打开,只能读文件。不存在报错
wt:以文本写方式打开,只能写文件。 不存在创建;存在覆盖
rb+:以二进制方式打开,可读、写文件。如果文件不存在,会发生异常
wb+:以二进制方式打开,可读、写文件。如果文件不存在,创建该文件;如果文件存在,会清空,在打开(覆盖)
㈡ 求Python读取文件后写入内容替换原内容的办法
先将内容 读取到内存中修改,然后使用w模式直接覆盖原文件。
如果文件较大,可以分割写入一个新文件,然后将原文件删除,将新文件重命名为原文件。
㈢ 用python读取文本文件,对读出的每一行进行操作,这个怎么写
用python读取文本文件,对读出的每一行进行操作,写法如下:
f=open("test.txt","r")
whileTrue:
line=f.readline()
ifline:
pass#dosomethinghere
line=line.strip()
p=line.rfind('.')
filename=line[0:p]
print"create%s"%line
else:
break
f.close()
㈣ python读取txt文件,查找到指定内容,并做出修改
你可以把txt的修改后的内容给重新写入文件,这样子会覆盖之前的文件
㈤ Python如何读文件内容修改后写回原文件
withopen(filename)asf:
file_str=f.read()
withopen(filename,'w')asf:
f.write(file_str)
㈥ gitpython如何修改文件内容不影响格式
三种方法
_弧⑿薷脑募绞?
_ef alter(file,old_str,new_str):
?
?"""
_婊晃募械淖址?
?:param file:文件名
?:param old_str:就字符串
?:param new_str:新字符串
?:return:
?
?"""
_ile_data = ""
?
_ith open(file, "r", encoding="utf-8") as f:
?
_or line in f:
?
_f old_str in line:
?
_ine = line.replace(old_str,new_str)
?
_ile_data += line
?
_ith open(file,"w",encoding="utf-8") as f:
?
_.write(file_data)
?
_lter("file1", "09876", "python")
?
__言募谌莺鸵薷牡哪谌菪吹叫挛募薪写娲⒌姆绞?
?
?2.1 python字符串替换的方法,修改文件内容
?
_mport os
?
_ef alter(file,old_str,new_str):
?
?"""
?
_婊坏淖址吹揭桓鲂碌奈募校缓蠼募境挛募奈次募拿?
?
?:param file: 文件路径
?
?:param old_str: 需要替换的字符串
?
?:param new_str: 替换的字符串
?
?:return: None
?
?"""
?
_ith open(file, "r", encoding="utf-8") as f1,open("%s.bak" % file, "w", encoding="utf-8") as f2:
?
_or line in f1:
?
_f old_str in line:
?
_ine = line.replace(old_str, new_str)
?
_2.write(line)
?
_s.remove(file)
?
_s.rename("%s.bak" % file, file)
?
_lter("file1", "python", "测试")
?
?2.2 python 使用正则表达式 替换文件内容 re.sub 方法替换
?
_mport re,os
?
_ef alter(file,old_str,new_str):
?
_ith open(file, "r", encoding="utf-8") as f1,open("%s.bak" % file, "w", encoding="utf-8") as f2:
?
_or line in f1:
?
_2.write(re.sub(old_str,new_str,line))
?
_s.remove(file)
?
_s.rename("%s.bak" % file, file)
㈦ python里怎样替换,修改文本内容
当我们读取文件中内容后,如果想要修改文件中的某一行或者某一个位置的内容,在python中是没有办法直接实现的,如果想要实现这样的操作只能先把文件所有的内容全部读取出来,然后进行匹配修改后写入到新的文件中。
实例代码如下所示:
备注:
1. 旧文件的内容
hello,world
yanyan is good girl
Good day is good day
2. 新文件在代码执行后的内容
hello,world
yanyan is good girl
hello,yanyan
3. 需要注意的是权限的问题,对于旧文件必须要有读取权限,对于新的文件必须要有写入权限