Я хочу преобразовать несколько текстовых файлов (с разделителями) в отдельный Excel, используя Python в цикле - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть папка, в которой находятся 128 файлов .txt, и все они имеют разделенные данные, которые должны быть преобразованы в отдельные файлы Excel.

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

Я использую следующий код:

import xlwt
import xlrd
f = open('Events.txt', 'r+')
row_list = []
for row in f:
   row_list.append(row.split('|'))
column_list = zip(*row_list)
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet1')
i = 0 
for column in column_list:
    for item in range(len(column)):
        worksheet.write(item, i, column[item])
    workbook.save('Excel.xls')
    i+=1

Все файлы хранятся в та же папка. Я не могу сделать al oop, в котором он будет открывать текстовый файл один за другим и преобразовывать его в excel, сохранять его с тем же именем, что и у текстового файла, а затем выбирать второй текстовый файл и т. Д. Для 128 файлов.

Пожалуйста, помогите!

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

Попробуйте что-нибудь подобное. os.listdir возвращает все имена файлов в указанном вами каталоге. Затем, если он заканчивается на .txt, он выполняет ваш оригинальный код.

import xlwt
import xlrd
import os

filepath = "C:\\Users\\Documents\\"
for txtfile in os.listdir(filepath):
    if txtfile.endswith('.txt'):
        f = open(filepath + txtfile, 'r+')
        row_list = []
        for row in f:
           row_list.append(row.split('|'))
        column_list = zip(*row_list)
        workbook = xlwt.Workbook()
        worksheet = workbook.add_sheet('Sheet1')
        i = 0 
        for column in column_list:
            for item in range(len(column)):
                worksheet.write(item, i, column[item])
            workbook.save(filepath + txtfile + '.xls')
            i+=1
0 голосов
/ 20 февраля 2020

Вы можете перебирать вашу папку следующим образом:

import os

dir = "your directory"

for filename in os.listdir(dir):
    if filename.endswith(".txt"): 
        # print(os.path.join(dir, filename))
        continue # do your stuff
    else:
        continue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...