用python读取文件
我是python新手,一直在用它来处理图形,但从来没有用它来处理其他问题。我的问题是如何读取这个以制表符或空格分隔的文件,并且在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
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']