使用Python在Linux中从不同文件创建Excel表格

3
在 Linux 服务器上有两个 txt 文件。 第一个数据文件:
      a;1234
      b;12334
      c;234234

第二个数据文件:

       a ; ass ; asfda
       b ; sdfq;  qwrwffsaa
       c ; asda ; qdasasd

我尝试使用Python创建一个具有两个工作表的Excel文件。第一个工作表保存第一个数据文件,第二个工作表保存第二个数据文件。
到目前为止,我开发的是:
#!/bin/python

import xlsxwriter
import smtplib
import datetime



now = datetime.datetime.now()
workbookname = 'Excel_'+now.strftime("%Y-%m-%d_%H:%M")+'.xlsx'
workbook = xlsxwriter.Workbook(workbookname)
worksheet = workbook.add_worksheet('Sheet1')
worksheet.write('A1', 'Hostname')
worksheet.write('B1', 'User Name')

worksheet2 = workbook.add_worksheet('User Privilege')
worksheet2.write('A1', 'Hostname')
worksheet2.write('B1', 'User Detail')
worksheet2.write('C1', 'Description')


with open('/tmp/file1.txt') as f:
    content = f.read().splitlines()

i = 0
while i < len(content):
    content2 = content[i].split(';')
    worksheet.write('A'+str(i+2), content2[0])
    worksheet.write('B'+str(i+2), content2[1])
workbook.close()

i = 0
while i < len(content):
with open('/tmp/file2.txt') as f:
content = f.read().splitlines()

    worksheet2.write('A' + str(i + 2), content2[0])
    worksheet2.write('B' + str(i + 2), content2[1])
    worksheet2.write('C' + str(i + 2), content2[2])
    i=i+1

workbook.close()

此脚本仅适用于第一个工作表,不会写入第二个工作表。

在你关闭文件之后,就不能再写入它了。而程序却做了两次这样的操作。请在所有文件的数据都写完之后再关闭它。 - jmcnamara
我已经尝试过了,但是没有成功。 - 1010111100011
1个回答

3

使用 pandas 可以在几行代码内完成此操作

import pandas

df1 = pandas.read_csv('file1.csv', sep = ';', header = None)
df2 = pandas.read_csv('file2.csv', sep = ';', header = None)

writer = pandas.ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet 1')
df2.to_excel(writer, 'sheet 2')
writer.save()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接