У меня есть скрипт, который раньше работал на старом сервере. Это было как бы брошено на меня, так что простите меня за отсутствие python знаний. Я изучил множество других языков и несколько дней устранял неполадки!
Я обновил пути соответствующим образом, но при запуске с новой ошибкой всегда получаю следующие ошибки: Ошибки Powershell с номерами строк
На изображении указаны номера строк 241, 117 и 140. Код следующий:
def main_function(todayDate):
zipFileName = ''
print todayDate
for root, dirname, files in os.walk(workingDir, topdown=True):
del dirname[:]
for file in files:
if file.startswith('datawarehousefeed_' + currentDwfVersion) or file.startswith('datawarehousefeed_' + currentDwfVersionBackfill):
if file.endswith('11692.zip'):
if (file.__contains__('BACKFILL_') and file.split('_')[4] == todayDate) or (file.__contains__(todayDate) and 'BACKFILL_' not in file):
zipFileName = workingDir + '\\' + file
print zipFileName
if not os.path.exists(archiveDir):
os.mkdir(archiveDir)
if os.path.exists(processingDir):
shutil.rmtree(processingDir)
os.mkdir(processingDir)
if os.path.exists(finalDir):
shutil.rmtree(finalDir)
os.mkdir(finalDir)
with zipfile.ZipFile(zipFileName, 'r') as zf:
zf.extractall(processingDir)
for root, dirname, files in os.walk(processingDir):
for file in files:
if not (file.startswith('qmresult')):
if not (file.startswith('rolepermission')):
if file:
if file:
tableName = file[:file.find('_')]
with open((processingDir + '\\' + file), 'rb') as read:
reader = csv.reader((line.replace('\0','') for line in read))
#reader = csv.reader(read)
with open((finalDir + '\\' + tableName + '.csv'), 'wb') as write:
writer = csv.writer(write, delimiter=',', quotechar="\"", lineterminator='\n')
for row in reader:
rowFixed = []
for column in row:
fixedColumn = string.replace(column, "\"", "\'\'")
fixedColumn2 = string.replace(fixedColumn, '\n', ' ')
rowFixed.append(fixedColumn2)
writer.writerow(rowFixed)
read.close
write.close
package_runner(zipFileName)
def package_runner(zipFileName):
try:
retcode = subprocess.call(r'dtexec /f "FILE PATH HERE"', shell=True)
if retcode > 0:
print >>sys.stderr, "Child was terminated by signal", -retcode
sendEmail("ssis failure", (zipFileName + " " + "DWF_1_A_ClaimAudit.dtsx" + " " + str(retcode)))
print (10/0)
else:
print >>sys.stderr, "Child returned", retcode
except OSError as e:
print >>sys.stderr, "Execution failed:", e
sendEmail("ssis failure", (zipFileName + " " + "DWF_1_A_ClaimAudit.dtsx" + " " + e))
sys.exit("error, exiting")
for single_date in daterange(startDate, endDate):
print single_date.strftime("%Y%m%d")
todayDate = single_date.strftime("%Y%m%d")
main_function(todayDate)