在python中读取文件

use*_*858 6 python csv string

我是python的新手,一直用它来制作图形,但从来没有为其他问题做过.我的问题是如何读取这个文件是tab或空格分隔并在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  
Run Code Online (Sandbox Code Playgroud)

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

pyf*_*unc 19

csv模块的相同技术不起作用吗?

import csv
reader = csv.reader(open("filename"), delimiter="\t")
Run Code Online (Sandbox Code Playgroud)

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

您也可以这样使用DictReader:

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

你也可以使用蛮力技术

for line in open(filename):
    listWords = line.split("\t")
Run Code Online (Sandbox Code Playgroud)

分割功能:

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']
Run Code Online (Sandbox Code Playgroud)

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

>>> import datetime
>>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
>>> k.days
105
>>> 
Run Code Online (Sandbox Code Playgroud)

  • @sykora:使用"\ s"只有在两个字符串"\ s"实际上位于您尝试读取的文件中的每个值之间时才有效 - 这是不太可能的.除了"\ t"(制表符),最常见的分隔符(和默认值)是","(逗号). (2认同)

MAK*_*MAK 7

对于简单的任务,您只需使用该str.split()方法即可.split()将分隔符作为其参数,但如果没有给出,则分割为空格.

>>> lin="a b c d"
>>> lin.split()
['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)