在python中从列表替换文件中的字符串
因此,在本例中,我需要查找具有特定扩展名的所有文件在python中从列表替换文件中的字符串,python,Python,因此,在本例中,我需要查找具有特定扩展名的所有文件.txt。然后我必须打开所有这些文件并用另一个字符串更改某些字符串。。。我被困在这里了 这是我的密码: import os, os.path find_files=[] for root, dirs, files in os.walk("C:\\Users\\Kevin\\Desktop\\python programi"): for f in files: fullpath = os.path.join(root, f) i
.txt
。然后我必须打开所有这些文件并用另一个字符串更改某些字符串。。。我被困在这里了
这是我的密码:
import os, os.path
find_files=[]
for root, dirs, files in os.walk("C:\\Users\\Kevin\\Desktop\\python programi"):
for f in files:
fullpath = os.path.join(root, f)
if os.path.splitext(fullpath)[1] == '.txt':
find_files.append(fullpath)
for i in find_files:
file = open(i,'r+')
contents = file.write()
replaced_contents = contents.replace('xy', 'djla')
print i
错误计量表:
line 12, in <module>
contents = file.write()
TypeError: function takes exactly 1 argument (0 given)
第12行,在
contents=file.write()
TypeError:函数只接受1个参数(给定0)
我知道有错误的论点,但我应该使用哪一个论点?
我想如果我将代码从改为“我在find files:
中查找”会更好
有什么建议吗?我想你的意思是使用
file.read()
而不是file.write()
不确定你是否只是想打印更改,或者你是否真的想将更改重写到文件中,在这种情况下,你可以这样做:
for i in find_files:
replaced_contents = ""
contents = ""
with open(i, "r") as file:
contents = file.read()
replaced_contents = contents.replace('xy', 'djla')
with open(i, "w") as file:
file.write(replaced_contents)
print i
打开文件进行读取时,无法写入文件(
r+
)。如果您使用w
打开它,您可以file.write(替换的内容)
…您是想将其写回文件还是只是想将其打印出来?错误消息表明write函数接受1个参数,但给出了0。根据python文档,文件写入函数的格式为f.write(string)将string的内容写入文件,返回none这取决于他是想用替换文件读出它,还是想实际替换文件,print
语句可能只是debugging@Scironic除非有某种非常地道的python方法将函数应用于文件中的行,否则他将不得不在此时读入函数。他可能也需要增加一个书面电话,但那必须在替换电话之后进行。你当然是对的,我应该用更好的措辞。我想指出的是,虽然这将是一个问题,但这可能不是他感兴趣的主要问题。我在那次评论中超越了自己。