Я написал код для преобразования xlsx в csv, а затем записал содержимое в файл CSD как часть действий CICS.
Когда я выполняю код в pycharm, он работает нормально.Я упаковал свой файл python, используя опцию --oneFile pyinstaller, сообщив, что я получаю сообщение об ошибке при выполнении файла .exe.Ошибка:
ImportError: отсутствуют обязательные зависимости ['numpy']
Я попытался запустить тот же код в pycharm, он работает нормально.Но мне нужно отправить это как exe одному из наших клиентов
import csv
import sys
import os
import pandas as pd
def xls2csv (xls_filename, csv_filename):
global excelFile
df = pd.read_excel(xls_filename) # sheetname is optional
df.to_csv(csv_filename, index=False)
excelFile = 1
def detectDelimiter(csvFile):
with open(csvFile, 'r') as myCsvfile:
header=myCsvfile.readline()
if header.find(";")!=-1:
return ";"
if header.find(",")!=-1:
return ","
#default delimiter (MS Office export)
return ";"
def ReadFile(csvFileName):
global mydict
with open(csvFileName, mode='r') as infile:
reader = csv.reader(infile, delimiter=detectDelimiter(csvFileName))
mydict = {'DEFINE TRANSACTION(' + rows[0] + ') ' : 'PROGRAM(' + rows[1] + ')' for rows in reader}
#print(mydict)
def usage():
print(" Error in execution \n usage : cstvToCSD <PathOfinputCSV/XLS/XLSXFile> <PathOfOutputCSDFile>")
def WriteToCSDFile():
progress = "Writing to CSD ...."
with open(outFile, 'w') as f:
print(progress)
f.writelines('{}{}\n'.format(k, v) for k, v in mydict.items())
print("Finished writing CSD file ")
if __name__ == "__main__":
arguments = sys.argv[1:]
count = len(arguments)
excelFile=0
if count == 2:
fileName = arguments.__getitem__(0)
outFile = arguments.__getitem__(1)
if os.path.isfile(fileName) :
if str(fileName).endswith("xlsx") or str(fileName).endswith("xls"):
#print(" XLS FILE PATH = ",fileName)
csvFileName = str(fileName).replace(".xlsx",".csv").replace(".xls",".csv")
if os.path.exists(csvFileName):
os.remove(csvFileName)
if os.path.exists(outFile):
os.remove(outFile)
#print(" CSV FILE PATH = ", csvFileName)
xls2csv(fileName,csvFileName)
else:
csvFileName = fileName
ReadFile(csvFileName)
WriteToCSDFile()
if excelFile == 1:
#print("Ï AM HERE" )
os.remove(csvFileName)
else:
print("CSV/XLS/XLSX File doesnot exist or is not a file ")
usage()
else:
usage()