我正在尝试编写一个代码,该代码将获取用户输入的信息并将其永久添加到不同文件的变量中:
main.py:
text = "hello world"
f = open("Testfile.py", "a+")
f.write(text)
Testfile.py:
w = ["bob", "joe", "emily"]Hello World
我怎样才能使它"Hello World"将出现在w中,例如
w = ["bob", "joe", "emily", "Hello World"]
编辑:
如果w是像w = {"bob": 0, "joe": 0, "emily" : 0}
我想添加"Hello World" : 0
真的有必要将数组的内容存储到python文件中吗?例如,您可以将其存储到一个yaml文件中,然后使用yaml库来向该文件写入和读取内容。
import yaml
import os
def load_yaml(filename):
with open(filename, 'r') as fp:
y = yaml.safe_load(fp)
return y
def save_yaml(content, filename):
if os.path.exists(filename):
os.remove(filename)
with open(filename, 'w') as fp:
yaml.safe_dump(content, fp, default_flow_style=False)
w = ["bob", "joe", "emily"]
save_yaml(w, "data.yaml")
w.append("hello world")
save_yaml(w, "data.yaml")
content = load_yaml("data.yaml")
print(content)
我强烈建议不要以编程方式修改python文件。通过将列表存储在文本文件中,并让任何程序读取文本文件并构建列表,您可能能够完成相同的任务。对于更复杂的任务,还可以使用其他文件格式,但对于简单地将字符串放入列表中,这段代码就足够了。对于真实的应用程序来说,某种类型的完整数据库是最好的。
用法:
bob
joe
emily
main.py:
def read_file():
f = open('test.txt', 'r')
lines = f.readlines()
lines = [line.strip() for line in lines] #removes the 'n' character at the end of each line
print(lines)
f.close()
def append_file(item):
f = open('test.txt', 'a')
f.write(item)
f.write('n')
f.close()
read_file()
append_file("Hello World")
append_file("test")
read_file()
也作为奖励,您可以使用with
更简明地管理文件对象。
def read_file():
with open('test.txt', 'r') as f:
lines = f.readlines()
lines = [line.strip() for line in lines] #removes the 'n' character at the end of each line
print(lines)
def append_file(item):
with open('test.txt', 'a') as f:
f.write(item)
f.write('n')