如何将文本附加到不同的python文件中的变量中?



我正在尝试编写一个代码,该代码将获取用户输入的信息并将其永久添加到不同文件的变量中:

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')

相关内容

  • 没有找到相关文章

最新更新