Python: конвертировать файлы DAT в XLS

У меня есть куча файлов DAT, которые мне нужно преобразовать в файлы XLS с помощью Python. Должен ли я использовать библиотеку CSV для этого или есть лучший способ?


person Everett    schedule 12.10.2017    source источник
comment
Все ли файлы DAT похожи по формату, и если да, то можете ли вы показать нам образец?   -  person Bill Bell    schedule 12.10.2017
comment
Я не совсем уверен, но я думаю, что они все похожи. Если я смогу преобразовать хотя бы 80% файлов с помощью простого скрипта, я буду счастлив.   -  person Everett    schedule 12.10.2017


Ответы (2)


Я бы использовал панд.

import pandas as pd
df = pd.read_table('DATA.DAT')
df.to_excel('DATA.xlsx')

и, конечно же, вы можете настроить цикл для просмотра всех ваших файлов. Что-то в этом духе может быть

import glob
import os
os.chdir("C:\\FILEPATH\\")
for file in glob.glob("*.DAT"):
     #What file is being converted
     print file 
     df = pd.read_table(file)
     file1 = file.replace('DAT','xlsx')
     df.to_excel(file1)
person Tim Gottgetreu    schedule 12.10.2017
comment
Я продолжаю получать сообщение об ошибке, говорящее, что мне не хватает модуля openpyxl. Я попытался импортировать его, но все равно получаю ту же ошибку. - person Everett; 12.10.2017
comment
Какую версию панд вы используете? Я думаю, что .to_excel есть в v20? stackoverflow.com/questions/37954195/upgrade-version-of-pandas если вы используете версию ниже 20. - person Tim Gottgetreu; 12.10.2017
comment
не уверен, как проверить версию, я пробовал pandas -version, но не повезло. Я запустил pip3 install --upgrade pandas, и он обновил numpy до версии 1.13.3; однако я все еще получаю ту же ошибку «модуль не найден» - person Everett; 12.10.2017
comment
ах, глупый я, я не установил его. Теперь это работает! Большое спасибо Тиму! - person Everett; 12.10.2017
comment
Замечательно! Рад слышать :) А если понравится, то можно принять ответ? Спасибо! - person Tim Gottgetreu; 12.10.2017
comment
Я пытаюсь использовать функцию цикла, но у меня возникают проблемы. Он продолжает выдавать мне ошибку No engine for filetype. Я считаю, что это как-то связано с df = pd.read_table('file'). Заменить ли file именем первого файла DAT в моем каталоге? Я пробовал это, но это дает мне ошибку. Я читал что-то о необходимости использовать временный файл, должен ли я попробовать использовать его? - person Everett; 12.10.2017
comment
Извините, моя ошибка, что df=pd.read_table('file') должно быть df=pd.read_table(file), так как файл уже должен быть строкой. Я обновил ответ. - person Tim Gottgetreu; 12.10.2017

writer = pd.ExcelWriter('pandas_example.dat',
                        engine='xlsxwriter',
                        options={'strings_to_urls': False})

или вы можете использовать:

pd.to_excel('example.xlsx')
person Neha    schedule 12.10.2017