我可以使用Python的CSV库或类似技术内联修改CSV文件吗?
当前我正在处理文件并更新第一列(名称字段)以更改格式.我的代码的简化版本如下所示:
with open('tmpEmployeeDatabase-out.csv', 'w') as csvOutput:
writer = csv.writer(csvOutput, delimiter=',', quotechar='"')
with open('tmpEmployeeDatabase.csv', 'r') as csvFile:
reader = csv.reader(csvFile, delimiter=',', quotechar='"')
for row in reader:
row[0] = row[0].title()
writer.writerow(row)
Run Code Online (Sandbox Code Playgroud)
哲学有效,但我很好奇我是否可以进行内联编辑,这样我就不会复制文件了.
我已尝试过以下操作,但这会将新记录追加到文件末尾而不是替换它们.
with open('tmpEmployeeDatabase.csv', 'r+') as csvFile:
reader = csv.reader(csvFile, delimiter=',', quotechar='"')
writer = csv.writer(csvFile, delimiter=',', quotechar='"')
for row in reader:
row[1] = row[1].title()
writer.writerow(row)
Run Code Online (Sandbox Code Playgroud) 在我的csv计划开始时:
import csv # imports the csv module
import sys # imports the sys module
f = open('Address Book.csv', 'rb') # opens the csv file
try:
reader = csv.reader(f) # creates the reader object
for row in reader: # iterates the rows of the file in orders
print (row) # prints each row
finally:
f.close() # closing
Run Code Online (Sandbox Code Playgroud)
错误是:
for row in reader: # iterates the rows of the file in orders
_csv.Error: iterator should return strings, not bytes (did you …Run Code Online (Sandbox Code Playgroud)