簡體   English   中英

Python:使用xlsxwriter從txt逐行導入excel

[英]Python: Import from txt into excel line by line using xlsxwriter

嗨,謝謝您的閱讀。

我在python中有一個for循環問題。 我正在嘗試逐行讀取我的.txt文件,並使用worksheet.write_row在excel中導入每一行。 我嘗試了許多其他方法來完成此操作,但對於所有這些方法來說還很陌生,這對我來說是最容易理解的。

從文件中只選擇一行就可以了,所以我很確定我編寫的“ for”循環出了點問題。

我已經嘗試過各種我可以想到的編輯循環,但是沒有任何效果。 我也研究了網絡,但找不到任何可以識別的解決方案。 因此,任何幫助將不勝感激。

import xlsxwriter

workbook = xlsxwriter.Workbook('pythonlinetest.xlsx')        #create file
worksheet = workbook.add_worksheet()                         #create worksheet
data = open('160919-001 14cts c133_vi.txt','r')                #loaddata

#count lines
linelist = data.readlines()
count = len(linelist)
print count          #check lines

#make each line and print in excel
for n in range (0, len(linelist))
    line = linelist[n]
    splitline = line.split("\t")
    worksheet.write_row(row, 0, splitline)
    row += 1

>>>> Error: File "<ipython-input-4-abc8f489522d>", line 2
    for n in range (0, len(linelist))
                                     ^
SyntaxError: invalid syntax


#close workbook
workbook.close()

非常感謝!

在評論中寫下討論內容,

  1. 您在錯誤消息中提到的該行的末尾缺少一個:
  2. 如果您的輸入不是ascii則需要覆蓋解碼行為。
  3. 有關覆蓋xlsxwriter輸入格式行為,請參見http://xlsxwriter.readthedocs.io/tutorial03.html

因此,在Baris Demiray的幫助下,我成功地逐行導入了該行。 我有一個由“º”符號引起的解碼錯誤。 現在已修復。 如果有人感興趣,我將分享我的代碼。

唯一的問題是,如果您的.txt文件包含數字,則excel首先不會識別這些數字。 如果有人知道如何編輯此代碼,以便excel可以識別帶有數字的字符串,請隨時進行編輯。

import xlsxwriter

workbook = xlsxwriter.Workbook('test.xlsx')        #create file
worksheet = workbook.add_worksheet()           #create worksheet
data = open('your.txt','r')                #loaddata

linelist = data.readlines()              #read each line
count = len(linelist)                 #count lines
print count                       #check number of lines

for num in range (0, count):         #create each line and print in excel
    line = linelist[num]            #load each line in variable
    line = line.decode('latin1')         #decode problem solution
    splitline = line.split("\t")          #split lines
    worksheet.write_row(num, 0, splitline)         #write each line in excel

workbook.close()            #close workbook

就是這樣,也許它對某人的幫助也許沒有。 請記住,我對此並不陌生,並且多年來都沒有編寫任何程序,所以我敢肯定有更好的方法可以做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM