Как я могу создать файл Excel с несколькими листами, который хранит содержимое текстового файла с использованием Python - PullRequest
0 голосов
/ 26 сентября 2019

Мне нужно создать файл Excel, и каждый лист содержит содержимое текстового файла в моем каталоге, например, если у меня два текстовых файла, у меня будет два листа, и каждый лист содержит содержимое текстового файла.,Мне удалось создать файл Excel, но я мог заполнить его только содержимым последнего текстового файла в моем каталоге, однако, мне нужно прочитать все мои текстовые файлы и сохранить их в Excel.

Этомой код до сих пор:

import os
import glob
import xlsxwriter


file_name='WriteExcel.xlsx'
path = 'C:/Users/khouloud.ayari/Desktop/khouloud/python/Readfiles'

txtCounter = len(glob.glob1(path,"*.txt"))


for filename in glob.glob(os.path.join(path, '*.txt')):
    f = open(filename, 'r')
    content = f.read()
    print (len(content))

    workbook = xlsxwriter.Workbook(file_name) 
    ws = workbook.add_worksheet("sheet" + str(i))
    ws.set_column(0, 1, 30)
    ws.set_column(1, 2, 25)

    parametres = ( 
        ['file', content],
    ) 
    # Start from the first cell. Rows and 
    # columns are zero indexed. 
    row = 0
    col = 0

    # Iterate over the data and write it out row by row. 
    for name, parametres in (parametres): 
        ws.write(row, col, name) 
        ws.write(row, col + 1, parametres) 
        row += 1

    workbook.close()

пример: если у меня есть два текстовых файла, содержимое первого файла - «привет», содержимое второго текстового файла - «мир», в данном случаеМне нужно создать две таблицы: на первой странице должна храниться «привет», а на второй - «мир».но мои две таблицы содержат «мир».

1 Ответ

0 голосов
/ 26 сентября 2019

Рекомендую использовать pandas.В свою очередь, он использует xlsxwriter для записи данных (целых таблиц) в файлы Excel, но делает это намного проще - буквально с несколькими строками кода.

import pandas as pd

df_1 = pd.DataFrame({'data': ['Hello']})
sn_1 = 'hello'

df_2 = pd.DataFrame({'data': ['World']})
sn_2 = 'world'

filename_excel = '1.xlsx'

with pd.ExcelWriter(filename_excel) as writer:
    for df, sheet_name in zip([df_1, df_2], [sn_1, sn_2]):
        df.to_excel(writer, index=False, header=False, sheet_name=sheet_name)
...