用python读取文件

用python读取文件,python,string,csv,Python,String,Csv,我是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

我是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  

还有一种方法可以找出两个日期之间天数的差异。

同样的技术对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模块:


对于简单的任务,您可以使用
str.split()
方法
split()
将分隔符作为其参数,但如果未指定分隔符,则在空白处拆分

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

因此,如果我使用csv阅读器,我如何从输入文件访问每行的每个元素。使用csv.DictReader,标题行将用于读取以下行中每个值的键,然后每行将返回一个dict,其中该行的值作为该行的dict值。太好了,我从来不知道我可以将csv与非csv文件一起使用。但是使用delimiter=“\s”似乎不起作用。@sykora:只有当两个字符串“\s”在您试图读取的文件中的每个值之间时,使用“\s”才起作用,这是不太可能的。除了“\t”(制表符),最常用的分隔符(默认值)是“,”(逗号)。@martineau:pyfunc的回答是“分隔符可以是“\s”或“\t”。我只是想知道他为什么包括'\s'。我试过了,你说的确实是对的。
>>> lin="a b c d"
>>> lin.split()
['a', 'b', 'c', 'd']