Python csv模块写入文件消除空行详解

巷口听风
巷口听风
发布时间:2026-10-13 | 2人浏览过
原创

本文介绍Python中csv模块的使用,重点解决写入CSV文件时自动产生多余空行的问题。通过指定newline=''参数,可有效避免空行,确保数据格式正确。

本文仅作简要记录,方便后续查阅。关于Python中csv模块的详细介绍,网上已有大量资料,此处不再赘述,直接提供代码及解释。

示例数据如下:

Symbol,Price,Date,Time,Change,Volume
"AA",39.48,"6/11/2007","9:36am",-0.18,181800
"AIG",71.38,"6/11/2007","9:36am",-0.15,195500
"AXP",62.58,"6/11/2007","9:36am",-0.46,935000
"BA",98.31,"6/11/2007","9:36am",+0.12,104800
"C",53.08,"6/11/2007","9:36am",-0.25,360900
"CAT",78.29,"6/11/2007","9:36am",-0.23,225400

一、读取CSV文件并消除空行

import csv
#@param: wb:覆盖原来的文件内容
#@param: ab+:追加文件内容
 
with open('input.csv','wb') as f: 
 f_csv = csv.writer(f)
 f_csv.writerow(headers)  #读入项目标签名
#  f_csv.writerows(rows)
 id = 1 
 for row in rows:
  row = list(row)   #转换成list,因为原始是tupple
  row.insert(0,id)   #根据特定的题目要求!
  f_csv.writerow(row)
  id += 1

二、将读取数据转换为元组序列

import csv
with open('stocks.csv') as f:
 f_csv = csv.reader(f)
 headers = next(f_csv)
 for row in f_csv:
  # Process row
  ...

在上述代码中,row是一个列表。因此,要访问特定字段,需使用索引,例如通过row[0]访问Symbol,通过row[4]访问Change。

三、将数据读取为字典序列

mport csv
with open('stocks.csv') as f:
 f_csv = csv.DictReader(f)
 for row in f_csv:
  # process row
  ...

在此版本中,可通过列名访问每行数据,例如使用row['Symbol']或row['Change']。

四、写入数据

要写入CSV数据,仍可使用csv模块,但需先创建writer对象。例如:

rows = [('AA', 39.48, '6/11/2007', '9:36am', -0.18, 181800),
   ('AIG', 71.38, '6/11/2007', '9:36am', -0.15, 195500),
   ('AXP', 62.58, '6/11/2007', '9:36am', -0.46, 935000),
  ]
 
with open('stocks.csv','w') as f:
 f_csv = csv.writer(f)
 f_csv.writerow(headers)
 f_csv.writerows(rows)

若数据为字典序列,可按以下方式操作:

headers = ['Symbol', 'Price', 'Date', 'Time', 'Change', 'Volume']
rows = [{'Symbol':'AA', 'Price':39.48, 'Date':'6/11/2007',
  'Time':'9:36am', 'Change':-0.18, 'Volume':181800},
  {'Symbol':'AIG', 'Price': 71.38, 'Date':'6/11/2007',
  'Time':'9:36am', 'Change':-0.15, 'Volume': 195500},
  {'Symbol':'AXP', 'Price': 62.58, 'Date':'6/11/2007',
  'Time':'9:36am', 'Change':-0.46, 'Volume': 935000},
  ]
 
with open('stocks.csv','w') as f:
 f_csv = csv.DictWriter(f, headers)
 f_csv.writeheader()
 f_csv.writerows(rows)

写入数据时最棘手的问题是每行结束后自动多出一行空行。这正是本文旨在解决的问题,处理方法见“一”中的介绍。

以上关于Python使用csv模块写入文件并消除空行的方法,即为分享的全部内容。希望能对大家有所帮助,也欢迎大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表