以下是我用来搜索特定字符串的文件的代码。当我打开它生成的结果文件时,我的结果就在那里。
但是 - 它们被复制了很多次,而对于我的生活,我无法弄清楚为什么。
import os
global file_list
filename = raw_input("Enter a portion of the file name(s) you would like to search in: ")
results = raw_input("What file would you like results saved to: ")
file_list=[]
FO = open(results, 'w')
for dirname, subdirlist, files in os.walk("."):
for filenames in files:
file = os.path.join(dirname, filenames)
file_list.append(file)
if str(file).find(filename) >= 0:
for line in file:
FI = open(file, 'r')
for line in FI:
if len(line.split(':')) > 30:
line_list=line.split(':')
if line_list[29] == '5':
FO.write(line)
print("Files save to " + ("\"") + results + ("\""))
答案 0 :(得分:1)
你有for line in
两次。
在第一种情况下,for line in file
引用file
,即字符串文件名。当python在字符串上遇到for循环时,python会将字符串分解为单个字符,并为每个字符执行一次循环。
由于您从不使用这些字符,因此可能不正确并会导致不同数量的重复。
例如,文件“data123”将生成相同的结果7次,因为“data123”中有7个字符。