У меня есть куча файлов DAT, которые мне нужно преобразовать в файлы XLS с помощью Python. Должен ли я использовать библиотеку CSV для этого или есть лучший способ?
Python: конвертировать файлы DAT в XLS
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
Я продолжаю получать сообщение об ошибке, говорящее, что мне не хватает модуля openpyxl. Я попытался импортировать его, но все равно получаю ту же ошибку.
- person Everett; 12.10.2017
Какую версию панд вы используете? Я думаю, что .to_excel есть в v20? stackoverflow.com/questions/37954195/upgrade-version-of-pandas если вы используете версию ниже 20.
- person Tim Gottgetreu; 12.10.2017
не уверен, как проверить версию, я пробовал
pandas -version
, но не повезло. Я запустил pip3 install --upgrade pandas
, и он обновил numpy до версии 1.13.3; однако я все еще получаю ту же ошибку «модуль не найден»
- person Everett; 12.10.2017
ах, глупый я, я не установил его. Теперь это работает! Большое спасибо Тиму!
- person Everett; 12.10.2017
Замечательно! Рад слышать :) А если понравится, то можно принять ответ? Спасибо!
- person Tim Gottgetreu; 12.10.2017
Я пытаюсь использовать функцию цикла, но у меня возникают проблемы. Он продолжает выдавать мне ошибку No engine for filetype. Я считаю, что это как-то связано с
df = pd.read_table('file')
. Заменить ли file
именем первого файла DAT в моем каталоге? Я пробовал это, но это дает мне ошибку. Я читал что-то о необходимости использовать временный файл, должен ли я попробовать использовать его?
- person Everett; 12.10.2017
Извините, моя ошибка, что
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