<p>我将使用Python csv模块reader/writer或DictReader/DictWriter。你知道吗</p>
<p>从Python <a href="https://docs.python.org/2/library/csv.html" rel="nofollow noreferrer">csv document</a>:</p>
<pre><code>>>> import csv
>>> with open('eggs.csv', 'rb') as csvfile:
... spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
... for row in spamreader:
... print ', '.join(row)
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam
</code></pre>
<p>由于我现在有时间,我已经添加了一个完整的解决方案,说明我个人如何使用此代码:</p>
<pre><code>import csv
def format_row(data=None, widths=None):
return '\t'.join([column.ljust(width, ' ')
for column, width in zip(data, widths)])
heading = ("Student Id", "Name", "Age", "Favorite Subject")
widths = (10, 9, 3, 17)
output = []
output.append(format_row(heading, widths))
with open('Students.txt', 'r') as f:
csv = csv.reader(f)
for row in csv:
output.append(format_row(row, widths))
for line in output:
print(line)
</code></pre>
<p>format_row()方法使用列表理解来格式化具有正确间距的列。zip将列与其宽度相结合。这允许您相应地格式化每一列。另外请注意,在大多数情况下,您不希望对文件进行空格分隔,也不希望添加制表符分隔符。但是,我添加了它们,因为这是您最初提出问题的方式。最后,您需要添加一个检查,以确保您有足够的行和宽度。否则,你将以一个错误告终。你知道吗</p>