您好,感谢您的阅读。
我在 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()
非常感谢!
在评论中写下讨论,
:
。ascii
,则需要覆盖解码行为。xlsxwriter
的输入格式行为。感谢 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
就是这样,也许对某人有帮助,也许没有。请记住,我对此很陌生,并且多年来没有编写任何程序,所以我确信有更好的方法来做到这一点。
要让 Excel 文件识别数字,请使用:
workbook = xlsxwriter.Workbook('test.xlsx'', {'strings_to_numbers': True})