相關的問題: 1. Error in converting txt to xlsx using python的MemoryError而轉換到TXT XLSX
- Converting txt to xlsx while setting the cell property for number cells as number
我的代碼是
import csv
import openpyxl
import sys
def convert(input_path, output_path):
"""
Read a csv file (with no quoting), and save its contents in an excel file.
"""
wb = openpyxl.Workbook()
ws = wb.worksheets[0]
with open(input_path) as f:
reader = csv.reader(f, delimiter='\t', quoting=csv.QUOTE_NONE)
for row_index, row in enumerate(reader, 1):
for col_index, value in enumerate(row, 1):
ws.cell(row=row_index, column=col_index).value = value
print 'hello world'
wb.save(output_path)
print 'hello world2'
def main():
try:
input_path, output_path = sys.argv[1:]
except ValueError:
print 'Usage: python %s input_path output_path' % (sys.argv[0],)
else:
convert(input_path, output_path)
if __name__ == '__main__':
main()
此代碼的工作,除了一些輸入文件。我無法找到導致此問題的輸入txt和不輸入txt的區別。
我的第一個猜測是編碼。我試着用BOM來改變輸入文件的編碼爲UTF-8和UTF-8。但是這失敗了。
我的第二個猜測是它使用的字面太多的內存。但是我的電腦有32 GB RAM的SSD。
所以也許這個代碼沒有充分利用這個RAM的容量?
我該如何解決這個問題?
編輯:我補充說,行 打印的「Hello World」 和 打印「你好world2」 檢查,如果之前的「Hello World」的所有零件都正常運行。
我檢查了代碼打印 '世界你好',但不是 '你好world2'
所以,它真的很可能是 wb.save(output_path)
引起的問題。
有多大的文件? –
@PadraicCunningham One是19MB,另一個是32MB。兩者都失敗。 – user3123767
我認爲可以安全地說,你有足夠的內存,它總是保存你得到的錯誤? –