【发布时间】:2015-09-27 19:31:10
【问题描述】:
我想做的事:
我正在尝试将 csv 文件的格式从空格分隔更改为逗号分隔。
我做了什么:
我可以很好地摄取 csv 文件,并将输出逐行打印到控制台。该代码如下所示:
with open(txtpath, mode='r', newline='') as f:
fReader = csv.reader(f)
for rows in fReader:
print(rows)
这完全符合预期,抽查输出确认行被正确读取。
问题:
根据官方Python3 Documentation on csv.writer,“如果csvfile是文件对象,应该用newline=''1打开。”我的代码如下所示:
with open(csvpath, 'w') as g:
gWriter = csv.writer(g, newline='')
gWriter.writerows(rows)
总之,它看起来像这样:
with open(txtpath, mode='r', newline='') as f:
fReader = csv.reader(f)
for rows in fReader:
print(rows)
with open(csvpath, 'w') as g:
gWriter = csv.writer(g, newline='')
gWriter.writerows(rows)
但是,当我使用 Pycharm(选择 Anacondas 3.4 作为项目解释器)和使用 python3 mycode.py 从控制台运行代码时,两个结果都告诉我换行符“是此函数的无效关键字参数”和引用行42,这是我的 writer 对象被实例化的地方。我通过调试器运行它,一旦我尝试创建 writer 对象,它就会崩溃。如果我不添加它要求方言规范的换行参数,那么这也不起作用。
我确定我错过了一些非常明显的东西,但我看不到它。
【问题讨论】:
标签: csv python-3.x