所以我需要查找具有特定扩展名的所有文件.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)
我知道有一个错误的争论,但我应该使用哪个论点?
我认为如果我从for i in find files:
更改代码会更好
有什么建议吗?
答案 0 :(得分:2)
我认为您的意思是使用file.read()
而不是file.write()
答案 1 :(得分:0)
不确定您是否只是尝试打印更改,或者是否要将它们实际重写到文件中,在这种情况下您可以这样做:
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