преобразование текстового файла в CSV-файл без индекса - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть файл testx с данными

1 1 1 1 1 
2
3 4 4 4 4

. Я хочу прочитать это как файл csv.

data = pd.read_csv("file.txt",sep="\n",header=none)

, но это добавляет

   0,
    1,1 1 1 1 1 
    2,2
    3,3 4 4 4 4

Теперь я могу удалить индекс, а не тот, чтобы я мог получить файл CSV.

Я пишу index=false Запятая также пропала

Я смотрю вывод как

,1 1 1 1 1 
,2
,3 4 4 4 4

потому что моя входная программа принимает только CSV-файлы

Ответы [ 2 ]

2 голосов
/ 22 сентября 2019

Попробуйте:

from io import StringIO

csvtext = StringIO("""1 1 1 1 1 
2
3 4 4 4 4""")

data = pd.read_csv(csvtext, sep='\n', header=None)

data.to_csv('out.csv', index=False, header=False)

#on windows

!type out.csv

Вывод:

1 1 1 1 1 
2
3 4 4 4 4
1 голос
/ 22 сентября 2019

Если я вас понимаю, я думаю, что вам нужно только прочитать его, не изменяя его, попробуйте это:

import csv

with open('file.txt', newline='') as txt_file:
    csv_file = csv.reader(txt_file, delimiter=' ')

    #if you need to convert it to csv file:
    with open ('file.csv', "w",newline='') as new_csv_file:
        new_csv = csv.writer(new_csv_file, delimiter=',')

        for row in csv_file:
            print(' '.join(row))
            new_csv.writerow(row)

Вывод в формате CSV (ваш ожидаемый вывод не csv ):

1,1,1,1,1,
2
3,4,4,4,4

Я отредактировал ответ, поэтому, если вы хотите написать файл csv, теперь вы можете использовать предыдущий код.Вы можете работать с форматами, используя диалекты и параметры форматирования модуля csv.

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