寫csv文件時遇到的錯誤
阿新 • • 發佈:2018-05-15
typeerror open 但是 pre dmi finish rec output webdriver
1.錯誤
在許多文件中,寫入csv文件時都加"wb",w指寫入,b指二進制
如:
csvwrite=csv.writer(open("output.csv","wb")) Temp=["row1","row2","row3",] csvwrite.writerow(Temp) 或者是#!/usr/bin/env python #coding:utf-8 import csv #csv寫數據 def writeCsv(file_name="C:\\Users\\Administrator\\Desktop\\test.csv"): with open(file_name,‘wb‘) as f: writer=csv.writer(f) writer.writerow([‘element‘,‘system‘]) data=[ (‘selenium‘,‘webdriver‘), (‘appium‘,‘android‘), (‘appium‘,‘ios‘), (‘selenium‘,‘python‘)] writer.writerows(data) f.close() if __name__==‘__main__‘: writeCsv() #print(getCsv(0,0))
運行結果都會出錯:
TypeError: a bytes-like object is required, not ‘str‘
Traceback (most recent call last): File "E:\automatic\sc\data_driven_test\ddt_test.py", line 29, in <module> writeCsv() File "E:\automatic\sc\data_driven_test\ddt_test.py", line 9, in writeCsv writer.writerow([‘element‘,‘system‘]) TypeError: a bytes-like object is required, not ‘str‘ [Finished in 0.4s]
2.解決方法
寫入時只添加“w”而不是“wb”
將上述代碼改為:with open(file_name,‘w‘) as f:
可執行通過,但是打開csv文件會發現每一行後面都會多一行空行
只需將代碼改為 with open(file_name,‘w‘,”newline=‘‘) as f:
寫csv文件時遇到的錯誤