在Python中读取文件
我刚开始学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']