.txt в .csv через python обеспечивает csv только с одним столбцом

#python #pandas #csv #txt

Вопрос:

Я новичок в кодировании на python, я написал небольшой скрипт для преобразования текстовых файлов в папке в csv-файлы. Скрипт запущен, но он предоставляет csv-файл только с одним столбцом. Где моя вина? Также преобразованные файлы всегда содержат .txt.csv. Я был бы признателен за некоторую помощь. Большое спасибо!

Это формат txt. файл

Это мой код

 import os
import pandas as pd


input = "C:\path where original data is"
output = "C:\path for csv files"
os.chdir(input)

txt_files = os.listdir('.')
print(txt_files)

for txt_file in (txt_files):
    df = pd.read_csv(txt_file, delimiter = ',',  names=['Messpunktt','Zeichnungspunkt   t','Eigenschaftt','Positiont', 'Sollmaßt','Toleranzt','Abweichungt','Laget' ])
    df.to_csv(output txt_file '.csv', index=False)
 
 

Ответ №1:

Проблема может быть в разделителе, попробуйте изменить его на «t», поскольку, судя по опубликованному вами изображению, похоже, что таблица является фактическим разделителем, другим возможным подходом может быть изменение функции чтения на pd.read_table

Комментарии:

1. Спасибо за быстрый ответ. Я уже пробовал разные разделители, ни один из них не работал (включая t). Я также попробовал sep n в качестве замены разделителя. Я попробовал также pd.read_table, но это тоже не сработало.

2. Другой возможной попыткой может быть » s «, вы проверили содержимое df?

3. Спасибо, sep s сработало. Единственная проблема сейчас в том, что при сохранении файла он каждый раз создает файл .txt.csv.

4. Для этого мы могли бы удалить строку output txt_file '.csv и, например, заменить подстроку ‘.txt’ в txt_file чем-то вроде txt_file.replaceAll(‘.txt’,»)