1. 学习环境
windows10 、Anaconda(向初学者推荐这个工具) 中的IDE工具Spyder 、python 3.7。
2. 解决问题方法
output = open('Tresult123.csv', 'wb')
首先,把 ‘wb' 后面的的 ' b '去掉,去掉之后 writer.writerow(row) TypeError: a bytes-like object is required, not 'str,这个错误是没有了,但是打开 .csv文件会发现出现空行。然后再在后面加 newline=' ' 问题就彻底解决了,既不会报上面所说错误也不会出现空行 。
修改前代码:
import csv
def test():
input = open('result.csv', 'r')
output = open('Tresult123.csv', 'wb')
writer = csv.writer(output)
result = []
for row in csv.reader(input):
if row:
writer.writerow(row)
test()
修改后代码:
import csv
def test():
input = open('result.csv', 'r')
output = open('Tresult456.csv', 'w',newline = '')
writer = csv.writer(output)
result = []
for row in csv.reader(input):
if row:
writer.writerow(row)
test()
附(去除 .csv文件有空行的代码):
# -*- coding: utf-8 -*-
"""
Created on Fri Mar 8 15:31:16 2019
@author: 吕曌
"""
import csv
def test():
#result.csv 是有空行的文件
input = open('result.csv', 'r')
output = open('Tresult45678.csv', 'w', newline = '')
writer = csv.writer(output)
result = []
#去除空行
for row in csv.reader(input):
if row: #去除空行
writer.writerow(row)
test()
#把数据重新存入 Tresult45678.csv 文件之后就不会有空行了