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

本文介绍了Python中处理文件的几种方法,包括readline()和readlines()的区别,强调了当内存有限时应选择readline()。详细讲解了csv库的reader, writer, DictReader和DictWriter的用法,特别是如何处理分隔符问题。此外,还概述了pandas库的read_csv()和to_csv()函数在CSV文件操作中的应用。最后提到了字符串操作如join, split和strip在处理行内容时的作用。" 121611487,10113640,微积分实践:导数与微分问题解析,"['数学', '微积分', '解析几何']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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用于去除每行头尾空白。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值