在Python中读取文件

9 投票
2 回答
56561 浏览
提问于 2025-04-16 06:22

我刚开始学Python,之前主要用它来做图形方面的工作,但其他方面的应用还没尝试过。我的问题是,如何在Python中读取一个用制表符或空格分隔的文件,并且这个文件还有表头。我知道怎么处理用逗号分隔的文件,但这个我还没做过。

ID  YR  MO  DA  YrM  MoM  DaM  
100  2010  2  20  2010  8  2010  30  
110  2010  4  30  2010  9  2010 12     
112  2010  8  20  2010  10  2010  20  

另外,有没有办法计算两个日期之间相差多少天呢?

2 个回答

21

同样的csv模块的技巧不管用吗?

import csv
reader = csv.reader(open("filename"), delimiter="\t")

分隔符可以是"\s"或"\t"。

你也可以这样使用DictReader:

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()

你也可以用蛮力的方法。

for line in open(filename):
    listWords = line.split("\t")

分割函数:

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']

要计算天数,可以使用datetime模块:http://docs.python.org/library/datetime.html

>>> import datetime
>>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
>>> k.days
105
>>> 
8

对于简单的任务,你可以直接使用 str.split() 这个方法。split() 方法需要一个参数,就是你想要用来分隔的符号,如果你不提供这个符号,它会默认用空格来分隔。

>>> lin="a b c d"
>>> lin.split()
['a', 'b', 'c', 'd']

撰写回答