File Python更改文件中的字符串,并将带有新字符串的所有内容输出到新文件中
我试图在一个目录和几个子目录下的所有文件中扫描一个字符串,替换它,当我执行替换时,将它保存到一个新文件中, 我设法做到了 1) 在文件夹和子文件夹中的所有文件中搜索字符串, 2) 计算字符串的显示量 3) 为拥有字符串的用户创建新文件 但由于某些原因,我得到的新文件是空的,而不是包含替换字符串的旧文件行 这是我的密码:File Python更改文件中的字符串,并将带有新字符串的所有内容输出到新文件中,file,File,我试图在一个目录和几个子目录下的所有文件中扫描一个字符串,替换它,当我执行替换时,将它保存到一个新文件中, 我设法做到了 1) 在文件夹和子文件夹中的所有文件中搜索字符串, 2) 计算字符串的显示量 3) 为拥有字符串的用户创建新文件 但由于某些原因,我得到的新文件是空的,而不是包含替换字符串的旧文件行 这是我的密码: import os parentDirectory = "E:\ProjectPython\Test" oldString = "oldString" newString =
import os
parentDirectory = "E:\ProjectPython\Test"
oldString = "oldString"
newString = "newString"
if (os.path.isdir(parentDirectory)):
for dirName,directories,files in os.walk(parentDirectory):
for fileName in files:
fullPath = os.path.join(dirName,fileName)
with open(fullPath) as file:
counter=0
for line in file:
if line.__contains__(oldString) or line.__contains__(oldString.lower()):
counter=counter+1
if counter>>0 :
with open(fullPath+".New","w") as newFile:
for line in file:
newFile.write(line.replace(oldString,newString))
print("File:"+fullPath+"\nStrings that were replaced:"+str(counter))
else:
print(parentDirectory+"is missing!")
您已经在第一个
for line in file
循环中读取了整个文件;当你第二次这样做的时候,已经没有一行可以读了。将file.seek(0)
放在第二个循环之前倒带。另外,请注意,line.\uuuuu包含\uuuuu(oldString)
是错误的-双下划线方法是特殊功能的实现方式,而不是使用方式。应该在第行中写入oldString
。谢谢,File.seek(0)帮助了我,现在我在新文件中得到了输出。您已经在第一个for line in File
循环中读取了整个文件;当你第二次这样做的时候,已经没有一行可以读了。将file.seek(0)
放在第二个循环之前倒带。另外,请注意,line.\uuuuu包含\uuuuu(oldString)
是错误的-双下划线方法是特殊功能的实现方式,而不是使用方式。应该在第行中写入oldString。谢谢,文件.seek(0)有帮助,现在我在新文件中得到了输出