Импортировать текстовый файл в CSV с Python (все данные в 1 столбце) - PullRequest
0 голосов
/ 26 февраля 2019

У меня небольшая проблема, с которой я мог бы помочь.В программе, которую я запускаю, мне нужно импортировать файл .txt в Excel 2010 и отделить его символом ';'в 1 столбце.На данный момент, каждый раз, когда я открываю полученный CSV-файл, независимо от того, какой синтаксис я использую, Excel сортирует мои данные по отдельным столбцам.

Кто-нибудь когда-либо сталкивался с этой проблемой и нашел решение?

Ваша помощь будет высоко ценится!

Спасибо.

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

Я думаю, вы хотите что-то вроде этого.

import glob
import csv
import xlwt

for filename in glob.glob("C:\\your_path\\*.txt"):
    spamReader = csv.reader((open(filename, 'rb')), delimiter='|',quotechar='"')
    encoding = 'latin1'
    wb = xlwt.Workbook(encoding=encoding)
    sheet=xlwt.Workbook()
    sheet = wb.add_sheet('sheet 1')
    newName = filename
    for rowx, row in enumerate(spamReader):
        for colx, value in enumerate(row):
            sheet.write(rowx, colx, value)
    wb.save(newName.replace('.txt','.xls'))

Или это.

import glob
import csv
from xlsxwriter import Workbook

for filename in glob.glob("C:\\your_path\\*.txt"):
    spamReader = csv.reader((open(filename, 'rb')),
                            delimiter='|', quotechar='"')

    newName = filename.replace('.txt', '.xlsx')

    workbook = Workbook(newName, {'strings_to_numbers': True})
    worksheet = workbook.add_worksheet()

    for rowx, row in enumerate(spamReader):
        for colx, value in enumerate(row):
            worksheet.write(rowx, colx, value)

    workbook.close()

print "Done"
0 голосов
/ 27 февраля 2019

Итак, вот мой код:

import os
import csv

os.chdir(r'C:\Users\Contractuel\Desktop\Test')

with open('Setback.txt', 'r') as in_file:
    stripped = (line.strip() for line in in_file)
    lines = (line.split(";") for line in stripped if line)
    with open('TESTS.csv', 'w') as out_file:
        writer = csv.writer(out_file)
        writer.writerows(lines)

Тем не менее, я получаю это:

Результат, полученный из моего кода:

и мне нужно что-то вроде этого:

Что бы я хотел получить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...