在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方法将函数应用于文件中的行,否则他将不得不在此时读入函数。他可能也需要增加一个书面电话,但那必须在替换电话之后进行。你当然是对的,我应该用更好的措辞。我想指出的是,虽然这将是一个问题,但这可能不是他感兴趣的主要问题。我在那次评论中超越了自己。