Я сделал небольшую программу на Python для извлечения данных (файлов .csv) из нескольких сжатых файлов gzip с использованием библиотек Pandas, gzip и shutil.После их извлечения файлы .csv объединяются в один большой уникальный файл .csv.
Моя программа поддерживает версии Python 2.7 и 3.7 .
При сборке .exe для упрощения использования этой маленькой программы и совместимостина компьютерах, на которых не установлен Python, я делаю ошибки, потому что он не работает.
Это основная папка, в которой я выполняю .exe из PyInstaller:

Примечание. Файлы "00000 (0)" имеют формат .gzip без расширения, внутри которого имеется только один файл .csv, также без расширения.
У вас есть способ решить эту проблему?
Это то, что я получил от терминала во время реального исполнения:

Терминальная команда для создания .exe:
pyinstaller.exe --clean --onefile Convierte_Rar_En_Csv_Final.py --name Transforma2 --hidden-import numpy
Версии:
- Python: 2.7.15
- pyinstaller:3.4 (для установки этой библиотеки я просто скачал папку с здесь , затем переместил ее на
C:\YourPythonEnviroment\Lib\site-packages\PyInstaller-3.4
и, наконец, сделал из терминала, как только япапка PyInstaller-3.4 python setup.py install
.) - панд: 0.24.0
- numpy: 1.16.0
- pytz: 2018.9
- wxPython 4.0.4
- setuptools: 40.8.0
- python-dateutil: 2.8.0
Код моей программы:
def DescomprimeYUne(path):
import pandas as pd
import gzip , shutil
import numpy
results = pd.DataFrame([])
for filename in os.listdir(path):
pathFile = path + filename
if filename != __file__.split("/")[-1] and not os.path.isdir(pathFile):
# # Descomprimo fichero
with gzip.open(pathFile, 'rb') as f_in:
with open(pathFile + '.csv', 'wb') as f_out:
shutil.copyfileobj(f_in, f_out)
# Borro fichero original
os.remove(pathFile)
# Concateno a CSV final
namedf = pd.read_csv(pathFile + ".csv", skiprows=0)
results = results.append(namedf)
# Borro fichero csv
os.remove(pathFile + '.csv')
results.to_csv(path + "final.csv")
if __name__ == "__main__":
DescomprimeYUne("./")
Iпоследовал также этот урок , но у меня это не сработало.