我的程序已设置好,所以我可以在终端列表中添加项目,但每当我执行此操作时,例如myFile.append('hello')
它会将其保留在那里,但是当我退出终端并再次执行此操作时,'hello'
将被删除。请帮忙。谢谢!
代码
elif userInput in command:
print("Okay, Initializing new command.\n\n")
command1 = raw_input("Which command would you like to add?\nKeyword\nLater Versions\n ").lower()
if command1 == 'keyword':
print('You selected keyword, to exit press enter')
command2 = raw_input("Which Keyword would you like to edit? ")
if command2 == 'calc':
command3 = raw_input("Which Keyword would you like to add? ")
calc.append(command3)
print(calc)
答案 0 :(得分:3)
尝试类似:
with open(myFile, 'a') as f:
f.write('hello')
您可以使用.append
附加到列表,但不能附加到文件。相反,你可以使用' a'如上标记以附加到文件myFile
,其中myFile
是文件路径。
根据您现有的代码和您想要实现的目标,试试这个:
...
elif userInput in command:
print("Okay, Initializing new command.\n\n")
command1 = raw_input("Which command would you like to add?\nKeyword\nLater Versions\n ").lower()
if command1 == 'keyword':
print('You selected keyword, to exit press enter')
command2 = raw_input("Which Keyword would you like to edit? ")
if command2 == 'calc':
command3 = raw_input("Which Keyword would you like to add? ")
calc = 'path/to/file'
with open(calc, 'a+') as f:
f.write(command3 + '\n')
f.seek(0) #This brings you back to the start of the file, because appending will bring it to the end
print(f.readlines())
基本上,您正在写入文件,并打印写入该文件的所有单词的列表。 'a+'
标志将允许您打开文件进行读写。此外,代替/除了打印"列表"使用print(f.readlines())
,您可以将其分配给变量并具有实际的python list
对象,以便稍后进行操作(如果这是您想要的):wordlist = f.readlines()
。
此外,为了提高您对该问题的基本了解,您应该查看this和this。
如果您需要在代码的前面加上list
个关键字,可以添加:
with open('wordlist.txt', 'a+') as f: #wordlist.txt can be changed to be another file name or a path to a file
f.seek(0) #opening with `'a+'` because it will create the file if it does not exist,
# and seeking because `'a+'` moves to the end of the file
calc = f.readlines()
这将读取wordlist.txt
中的单词列表,并将其保存到名为list
的Python calc
中。现在calc
是一个实际的Python list
对象,您可以使用calc.append('whatever')
。稍后在您的代码中,当您想要将所有关键字保存回持久性"列表" (实际上只是一个文字文件,其中的单词用换行符分隔('\n'
),你可以这样做:
with open('wordlist.txt', 'w+') as f:
for word in calc:
f.write(word)
f.seek(0)
print(f.readlines())
这将覆盖您的wordlist文件,其中包含当前calc
列表中的所有单词,并将所有值打印到控制台。
在没有真正理解你的程序应该如何工作或自己编写的情况下,这是我能做的最好的事情。尝试提高您对Python文件I / O的理解;它不是那么复杂的一些实践,并将在未来为您提供简单的持久数据。我还建议在Codecademy上阅读像this one这样的Python教程,以提高对Python工作原理的一般理解。我并不是说这是一种侮辱;我不久前自己做了这个教程,它确实帮助我创建了Python基础知识的良好基础。它还包括a lesson on file I/O。祝你好运!