我是新來的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
還有一種方法來查找兩個日期之間的天數差異。
我是新來的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
還有一種方法來查找兩個日期之間的天數差異。
對於簡單的任務,您可以使用str.split()
方法。 split()
將分隔符作爲其參數,但如果沒有給定分隔符,則以空格分隔。
>>> lin="a b c d"
>>> lin.split()
['a', 'b', 'c', 'd']
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']
爲了計算無天,使用日期時間模塊:http://docs.python.org/library/datetime.html
>>> import datetime
>>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
>>> k.days
105
>>>
因此,如果我使用CSV閱讀器我如何訪問輸入文件中的每一行的每個元素。 – user458858 2010-10-31 23:32:09
使用csv.DictReader,並且標題行將用於讀取以下行中每個相應值的鍵,然後每行將返回一個帶有行值作爲行字典值的字典。 – PaulMcG 2010-11-01 01:05:17
太棒了,從來不知道我可以使用csv與非csv文件。但使用delimiter =「\ s」似乎不起作用。 – sykora 2010-11-01 06:53:20