【发布时间】:2014-05-08 01:52:28
【问题描述】:
我正在尝试创建一个“审查员”程序,该程序会在“审查员列表”中读取要审查出“审查员文件”的词语。我觉得我很接近了,但是当我运行程序时,它只会审查一行。任何帮助将不胜感激!
#!/usr/bin/python
import sys, os
censorlist = raw_input("File with words to censor? ")
if os.path.isfile(censorlist):
print "The file", censorlist, "exists!"
else:
print "The file", censorlist, "doesn't exist!"
sys.exit()
print ""
filterword = {}
for currentline in censorlist:
line = currentline.strip()
filterword.append(line)
censorfile = raw_input("File to censor using provided list? ")
script = []
for currentline in censorfile:
line = currentline.strip()
script.append(line)
for lines in script:
results = []
words = lines.split()
for word in words:
if word in filter:
results.append("****")
else:
results.append(word)
resultfile = open(censorfile, 'w')
for items in results:
resultfile.write(items)
【问题讨论】:
-
您不需要发布整个程序,只需发布您正在努力解决的问题。解释不清楚,代码有问题。您将字符串分配给
censorlist,然后使用for currentline in censorlist对其进行迭代,但您要迭代的不是行,而是字符。 -
您是在问如何用
****替换一堆子字符串?如果是这样,请查看以字符串形式读取文件,然后执行for word in censorlist: inputfile.replace(word, '****')。祝你好运。 -
对不起,我不清楚。我正在尝试从 censorlist 中获取单词,并且每次它们出现在 censorfile 中时,将单词(在 censorfile 中)替换为 ****
-
@user3284938 不应该
filterword是一个数组而不是一个对象?您正在对一个对象使用 append。