擅长:python、mysql、java
<p>这种数据库文件被称为逗号分隔值,即使它们不是真正由逗号分隔的。Python有一个叫做<code>csv</code>的便利库,可以让您轻松地读取这些文件</p>
<p>这里有一个稍微修改过的<a href="http://docs.python.org/library/csv.html#examples" rel="nofollow noreferrer">example from the docs</a></p>
<pre><code>csv.register_dialect('mycsv', delimiter='\t', quoting=csv.QUOTE_NONE)
with open(filename, 'rb') as f:
reader = csv.reader(f, 'mycsv')
</code></pre>
<p>通常你一次只能工作一行。如果需要一个元组中的整个文件,则:</p>
<pre><code>t = tuple(reader)
</code></pre>
<h2>编辑</h2>
<p>如果需要按名称访问字段,可以使用<a href="http://docs.python.org/library/csv.html#csv.DictReader" rel="nofollow noreferrer">cvs.DictReader</a>,但我不知道具体是如何工作的,因此无法在这里进行测试。</p>
<h2>编辑2</h2>
<p>看看<a href="http://docs.python.org/library/collections.html#namedtuple-factory-function-for-tuples-with-named-fields" rel="nofollow noreferrer">namedtuples</a>是什么,我有点过时了。有一个很好的例子说明了namedtuple如何与csv模块一起工作:</p>
<pre><code>EmployeeRecord = namedtuple('EmployeeRecord', 'name, age, title, department, paygrade')
import csv
for line in csv.reader(open("employees.csv", "rb")):
emp = EmployeeRecord._make(line)
print emp.name, emp.title
</code></pre>