我需要将文本文件转换为Excel工作表

时间:2019-05-13 10:29:40

标签: excel python-3.x text

我正在尝试将数据上传到mysql。该文本文件为表格格式,我需要将其转换为Excel工作表,文本如下:

AC NO PART NO SR NO Voter Name ID CARD NO GENDER AGE    
195 5 747 अमर सुदाम नाडेकर AFB8066037 M 22
195 12 502 अमर बाळु सुकाळे AFB1833029 M 29
195 20 1014 अमर सुदाम नाडेकर AFB8272858 M 22
195 22 449 अमर रामचंद्र भालिंगे AFB8121022 M 22
195 29 379 अमरदीप एकनाथ कुमकर AFB8068603 M 20
195 36 617 अमर तानाजी डुंबरे AFB7546203 M 30
195 37 360 अमर सिताराम तांबे AFB7987993 M 23

我尝试了一些代码,它给了我这样的CSV格式:

"AC,NO,PART,NO,SR,NO,Voter,Name,ID,CARD,NO,GENDER,AGE,,,,
","195,5,747,अमर,सुदाम,नाडेकर,AFB8066037,M,22
","195,12,502,अमर,बाळु,सुकाळे,AFB1833029,M,29
","195,20,1014,अमर,सुदाम,नाडेकर,AFB8272858,M,22
","195,22,449,अमर,रामचंद्र,भालिंगे,AFB8121022,M,22
","195,29,379,अमरदीप,एकनाथ,कुमकर,AFB8068603,M,20
","195,36,617,अमर,तानाजी,डुंबरे,AFB7546203,M,30
","195,37,360,अमर,सिताराम,तांबे,AFB7987993,M,23
","195,42,450,अमर,आशोक,हांडे,FTV1708460,M,35

这是我的代码:

import csv
import pandas as pd

f = open('voters_search_results1.txt')

x = f.readlines()
s = []

for i in x:
  i = i.replace(","," ")
  j = i.replace(" ",",")
  s.append(j)

csvex = csv.writer(open("txt2csv_export.csv","w"), delimiter= ','  
     ,quoting= csv.QUOTE_MINIMAL)
csvex.writerow(s)


df = pd.read_csv('txt2csv_export.csv')
df.to_excel('output.xlsx', 'Sheet1')

当我尝试将其上传到mysql时会出现此错误:

  

“”“ raise XLRDError('不支持的格式,或者文件损坏:'+ msg)   xlrd.biffh.XLRDError:不支持的格式或损坏的文件:预期   BOF记录;找到b'“ AC,NO,P'”“”

1 个答案:

答案 0 :(得分:0)

您的输出文件字段分隔符看起来不正确,并且在行的开头有双引号,但没有匹配的末尾双引号,CSV应该类似于:

"AC","NO","PART","NO","SR"... etc

尝试添加quotechar以使用“”格式拆分字段:

csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)