Python文件读写readline()、readlines()、CSV库、pandas库

1.readline()

.readline()每次只读取一行,通常比 .readlines()慢得多;仅当没有足够内存可以一次读取整个文件时,才应该使用.readline()。 

f = open('poem.txt','r')  
result = list()  
for line in open('poem.txt'):  
    line = f.readline()  
    print line  
    result.append(line)  
print result  
f.close()                  
open('result-readline.txt', 'w').write('%s' % '\n'.join(result)) 

2. readlines()

.readlines()自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for... in ... 结构进行处理。

f = open('cdays-4-test.txt', 'r')                   #以读方式打开文件  
result = list()  
for line in f.readlines():                          #依次读取每行  
    line = line.strip()                             #去掉每行头尾空白  
    if not len(line) or line.startswith('#'):       #判断是否是空行或注释行  
        continue                                    #是的话,跳过不处理  
    result.append(line)                             #保存  
result.sort()                                       #排序结果  
print result  
open('cdays-4-result.txt', 'w').write('%s' % '\n'.join(result)) #保存入结果文件

3. csv库处理csv文件

csv.reader()
csv.writer()

csv.DictReader()  .fieldnames  .next()  .append()

csv.DictWriter()  .writeheader() .writerow()

with open(infile,'rb') as fin:
    dr = csv.DictReader(fin, delimiter='\t')

# dr.fieldnames contains values from first row of `f`.
with open(outfile,'wb') as fou:
    dw = csv.DictWriter(fou, delimiter='\t', fieldnames=dr.fieldnames)
   dw.writerow(dict((fn,fn) for fn in dr.fieldnames))
   for row in dr:
       dw.writerow(row)

csv文件默认是以逗号为分隔符,如果出现错误“ParserError: Error tokenizing data. C error: Expected 1 fields in line 29, saw 2”,可以通过设置参数 sep=’\t’ ,即以tab为分隔符写入来处理。

参考:CSV读写csv文件

4. pandas

pandas.read_csv() pandas.read_csv参数详解

pandas.to_csv()

5. 其他

join用于连接字符串,split用于拆分字符串,strip用于去除每行头尾空白。

猜你喜欢

转载自blog.csdn.net/u013402321/article/details/80277022