为什么我的代码会产生重复的数据?

2024-04-19 17:49:41 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我用来在文件中搜索特定字符串的代码。当我打开它生成的结果文件时,我的结果就在那里。你知道吗

但是——它们被复制了好几次,我一辈子都搞不懂为什么。你知道吗

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 + ("\""))

Tags: 文件toinyouforinputrawif
1条回答
网友
1楼 · 发布于 2024-04-19 17:49:41

你有for line in两次。你知道吗

在第一种情况下,for line in file指的是file,一个字符串文件名。当python遇到字符串上的for循环时,python会将字符串分解为单个字符,并对每个字符执行一次循环。你知道吗

由于您从不使用这些字符,因此可能不正确,并且会导致不同数量的重复。你知道吗

例如,文件“data123”将生成7次相同的结果,因为“data123”中有7个字符。你知道吗

相关问题 更多 >