Создание нескольких файлов .txt из файла Excel с помощью цикла Python - PullRequest
0 голосов
/ 26 января 2019

Моя работа находится в процессе перехода с SAS на Python, и я пытаюсь получить преимущество.Я пытаюсь написать отдельные файлы .txt, каждый из которых представляет все значения столбца файла Excel.

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

Загрузка листа Excel:

импорт панд в формате pd

wb = pd.read_excel ('placements.xls')

Создание одного файла .txt:(Назван каждый столбец AZ для простоты ссылки)

с открытым ("A.txt", "w") как f:

for item in wb['A']:
    f.write("%s\n" % item)

Попытка моей руки в цикл for (нетбезрезультатно):

import glob

для файла в glob.glob ("*. txt"):

    f = open(( file.rsplit( ".", 1 )[ 0 ] ) + ".txt", "w") 
    f.write("%s\n" % item)
    f.close()

Первая часть работала как чудо и дала мнеTXT-файл со всеми соответствующими данными.

Когда я использовал команду glob, чтобы попытаться выполнить несколько итераций, она не выдает ошибку, а дает только один выходной файл (A.txt), и единственная точка данных в A.txt - это буква AЯ уверен, что мои входные данные далеко отстали ... после того, как я искал вечно, это то, что я нашел, имело смысл и побежало, но я не думаю, что я понимаю входные данные, поступающие в команду, или если что я 'м бег просто неточно.

Буду очень признателен за любую помощь!Я уверен, что это простой цикл, просто трудно обернуть голову, когда вы новичок в программировании на Python.

Еще раз спасибо!

1 Ответ

0 голосов
/ 26 января 2019

Я предлагаю использовать панды для записи файлов на to_csv, только изменить расширение на .txt:

# Uploading Excel Sheet:
import pandas as pd

df = pd.read_excel('placements.xls')

# Creating single .txt file: (Named each column A-Z for easy reference)

for col in df.columns:
    print (col)
    #python 3.6+ 
    df[col].to_csv(f"{col}.txt", index=False, header=None)
    #python bellow
    #df[col].to_csv("{}.txt".format(col), index=False, header=None)
...