Python 如何在.py文件中保存列表?

Python 如何在.py文件中保存列表?,python,list,python-3.x,Python,List,Python 3.x,我正在读取普通文本文件的内容,然后尝试将其保存在.py文件中作为列表变量 最初我尝试的是读取文件的内容,然后将它们存储在列表中。然后我自己把它们写到一个.py文件中 >>> f = open("word.txt","r+") >>> string = f.read() >>> string = (string.split("\n")) #checkpoint >>> string = "\',\' ".join(string

我正在读取普通文本文件的内容,然后尝试将其保存在.py文件中作为列表变量

最初我尝试的是读取文件的内容,然后将它们存储在列表中。然后我自己把它们写到一个.py文件中

>>> f = open("word.txt","r+")
>>> string = f.read()
>>> string = (string.split("\n")) #checkpoint
>>> string = "\',\' ".join(string)
>>> len(string)
147636
>>> f.close()
>>> f = open("word.py","w")
>>> f.write("word = [\'")
>>> f.write(string)
>>> f.write("\']")
>>> f.close()
然而,当我尝试使用导入单词时 我得到以下错误

SyntaxError:扫描三重引号字符串文字时出现EOF

是否有任何方法可以将列表字符串保存在.py文件中显示的检查点处

可能会有帮助。PPRE使用RPR来处理任何字符串逃逸要求,例如,嵌入在字符串中间的一个“孤独”。它还使用stream=参数将输出重定向到文件

您同样可以使用reprstring而不是pprintstring。我选择pprint将结果拆分为多行

还请注意使用with open。。。作为…:。这会在缩进块退出时自动关闭文件

from pprint import pprint

with open('word.txt') as f:
    string = f.read().split('\n')
with open('word.py', 'w') as f:
    f.write('word = ')
    pprint(string, stream=f)

直接的问题是,您在非Python模块的文件上使用了导入。您不能将列表值写入文本,而只是通过简单的输入操作将其恢复为列表值

导入值时,Python会尝试将其作为代码文件进行解析。您编写的文件中的某个地方有一个三重引号,开头没有结尾。Python找到了文件的结尾,最终意识到字符串没有结尾。这就是它发疯的地方:你对Python撒谎。你告诉它这将是一个法律模块,并给了它一些甚至不是法律标志的东西-


您需要找到一种可行的方法来传递列表值。我不能在此提出任何建议,因为您尚未描述更高级别的问题。

fyi您可以执行f.write'word='+repr[string]。py文件通常为python脚本或模块保留。你应该看看numpy的方法。或者,pickle,尽管那可能很危险。或者更好的方法是json.dump和json.load。或者只保存字符串:打开'word.saved.txt','w'作为f:f.write'\n'?为什么将其保存并重新加载为列表很重要?