<p>同时考虑<strong>yaml</strong>。需要安装<strong>pyyaml</strong>(<code>pip install pyyaml</code>)</p>
<pre><code>import yaml
</code></pre>
<p>将列表对象保存到文件:</p>
<pre><code>my_list = [['Hello', 'World', 0], ['Pretty', 'World', 1], ['Tired', 'World', 2]]
with open('my_list.yml', 'w') as outfile:
yaml.dump(my_list, outfile, default_flow_style=False)
</code></pre>
<p>输出文件如下所示:</p>
<pre><code>- - Hello
- World
- 0
- - Pretty
- World
- 1
- - Tired
- World
- 2
</code></pre>
<p>要加载列表:</p>
<pre><code>with open("my_list.yml", 'r') as inputfile:
my_list_back = yaml.load(inputfile)
</code></pre>
<p/><hr/>
要直接处理字符串,可以使用标准库<a href="https://docs.python.org/3/library/ast.html#ast.literal_eval" rel="nofollow noreferrer">^{<cd2>}</a>,这是一个简单的示例,您可以进一步自定义。
<pre><code>import ast
string_list = (str(my_list)) # convert tostring then save it to file
print(string_list.__class__) # it's a string
reconverted_list = ast.literal_eval(string_list) # convert back with ast
print(reconverted_list.__class__) # it's a list
</code></pre>
<p>而不是基本的读/写:</p>
<pre><code>with open('my_list.txt', 'w') as file:
file.write(str(my_list))
with open('my_list.txt', 'r') as file:
my_list_back = ast.literal_eval(file.read())
</code></pre>