<p>这种格式只使用双引号,不使用单引号,看起来像<a href="https://en.wikipedia.org/wiki/JSON" rel="nofollow">JSON (JavaScript object notation)</a>。幸运的是,python2.6或更高版本附带的<code>json</code>模块可以解析JSON。因此,阅读每一行,将其解析为JSON(使用<code>json.loads</code>),然后打印出来。尝试以下操作:</p>
<pre><code>import json
with open("lists.txt", "r") as infp:
rows = [json.loads(line) for line in infp]
for sn, name, position in rows:
print("SN : %s\nName : %s\nPosition : %s\n" % (sn, name, position))
</code></pre>
<h2>驯服CSV</h2>
<p>另一种解决方案是以制表符或逗号分隔的值格式导出,并使用Python的<code>csv</code>模块读取它们。例如,如果逗号分隔文件中的值包含逗号,请用双引号(<code>"</code>)将其括起来:</p>
<pre><code>2,Bob Benny,"Moderator, Graphic Designer"
</code></pre>
<p>如果一个值包含双引号字符,则将其加倍,并用双引号将整个值括起来。例如,下一行的最后一个元素的值为<code>"Fossils" Editor</code>:</p>
<pre><code>5,Chester from Tilwick,"""Fossils"" Editor"
</code></pre>
<p>电子表格应用程序(如Excel、LibreOffice Calc或Gnumeric)将在以单独格式保存时为您执行此转义操作。因此<code>lists.csv</code>看起来是这样的:</p>
<pre><code>1,Andy Allen,Administrator
2,Bob Benny,"Moderator, Graphic Designer"
3,Zed Zen,Member
5,Chester from Tilwick,"""Fossils"" Editor"
</code></pre>
<p>可以类似地分析:</p>
<pre><code>import csv
with open("lists.csv", "r", newline="") as infp:
# use "excel" for comma-separated or "excel-tab" for tab-separated
reader = csv.reader(infp, "excel")
rows = list(reader)
for sn, name, position in rows:
print("SN : %s\nName : %s\nPosition : %s\n" % (sn, name, position))
</code></pre>
<p>(这是针对python3的。python2的<code>csv</code>模块略有不同,因为<code>open</code>应该是二进制的:<code>open("lists.txt", "rb")</code>。)</p>