我对python很新。在堆栈流量社区的帮助下,我设法完成了部分任务。我的程序从一个小文本文件中删除一个随机单词并将其分配给一个变量并将其放入另一个文本文件中。
然而,在我的程序结束时,我需要将该随机单词放回文本文件中以使我的程序正常工作,以便有人可以多次使用。
文本文件中的所有单词都没有特定的顺序,但每个单词都在,并且需要在一个单独的行上。
这是从文本文件中删除随机单词的程序。
with open("words.txt") as f: #Open the text file
wordlist = [x.rstrip() for x in f]
replaced_word = random.choice(wordlist)
newwordlist = [word for word in wordlist if word != replaced_word]
with open("words.txt", 'w') as f: # Open file for writing
f.write('\n'.join(newwordlist))
如果我错过了所需的重要信息,我很乐意提供:)
答案 0 :(得分:0)
您正在替换您的words.txt文件,因此丢失了所有单词。如果您只是为随机单词创建一个新文件,则无需重写原始文件。类似的东西:
...
with open("words_random.txt", 'w') as f:
w.write(replaced_word)
您将拥有一个只包含随机字词的新文本文件。
答案 1 :(得分:0)
为什么不在程序开头复制文本文件?在您的副本上执行您目前所拥有的内容,这样您就可以保持原始文件不变。
import shutil
shutil.copyfile("words.txt", "newwords.txt")
with open("newwords.txt") as f: #Open the text file
wordlist = [x.rstrip() for x in f]
replaced_word = random.choice(wordlist)
newwordlist = [word for word in wordlist if word != replaced_word]
with open("newwords.txt", 'w') as f: # Open file for writing
f.write('\n'.join(newwordlist))