我想從csv文件中讀取,提取一些值並將它們複製到已存在的文件中。從混合列表中提取整數
在我的文件中的行是這樣的:
row = ['success', '9358', 'MC', '9363.0', 'MC', '1.001', '9363.0', 'MC', '1.001']
我試圖提取整數值9358,我曾嘗試以下操作:
int(row[1])
map(int, row[1])
map(int, row['1'])
int(row[1].replace("'", ""))
的錯誤int(row[1])
是:
Traceback (most recent call last):
File "upv_c.py", line 26, in
num1 = int(row[1])
ValueError: invalid literal for int() with base 10: ''
但每一個這些拋出一些錯誤或其他。 任何想法我怎麼去解決它?
我的代碼如下:
#!/home/utils/Python-2.7/bin/python2.7
import csv
import xlwt
import xlrd
from xlutils.copy import copy
book = xlrd.open_workbook('reg_test.xls')
wb = copy(book) # a writable copy
w_sheet = wb.get_sheet(0)
with open('results2.csv', 'r') as f:
reader = csv.reader(f)
next(reader, None)
next(reader, None)
next(reader, None)
next(reader, None)
i = 1
for row in reader:
num = map(int, row[1])
w_sheet.write(i, 2, num)
i += 1
wb.save('reg_test.xls')
「但是其中每一個都會引發一些錯誤或其他錯誤。」 < - 不要讓我們猜測。什麼錯誤? – timgeb
好吧,那你爲什麼要做'num1 = int(row [6])'而不是'num1 = int(row [1])'? – timgeb
抱歉!真正的列表太長,無法發佈。我確定索引中沒有錯誤。 – user3262537