какой синтаксис для этого оператора if? - PullRequest
0 голосов
/ 01 февраля 2019

У меня синтаксическая ошибка с оператором if.Он работал правильно с другой версией, но я пишу в выходной журнал, и мне не понравилось, как он будет выводить для каждого проверенного файла, я хочу, чтобы он записывал только один раз, если файл существует или нет.

Первый код ниже - тот, который не работает , он говорит, что третий файл - неопределенная переменная (пятая строка кода).

Второй блок кода - это то, как он работал раньше.

Кто-нибудь знает, как это структурировать?

if any(file.endswith('.ppt') for file in os.listdir(scanDestinationPath)):
    os.startfile(machineFolderDir + machineType + '\\' +
                 partNumber + ' REV ' + revisionNumber + '\\' +
                 file, 'print')
    errorLog = open(logBookDir + 'log.txt', 'a+')
    errorLog.write('\nA setup sheet called PROG' + programNumber +
                   ' ' + partNumber + ' ' + revisionNumber +
                   '.ppt was printed.\n')
    errorLog.close()
else:
    errorLog = open(logBookDir + 'log.txt', 'a+')
    m = ('The exception occurred in printDecoSetupSheet().There does not appear '
         f'to be a .ppt setup sheet file in folder {partNumber} {revisionNumber} '
         f'under {machineType}. Moving on...\n')
    errorLog.write(m)
    errorLog.close()

Второй кодовый блок:

    if file.endswith(".ppt"):
        os.startfile(machineFolderDir + machineType + '\\' +
                     partNumber + ' REV ' + revisionNumber + '\\' +
                     file, 'print')
        errorLog = open(logBookDir + 'log.txt', 'a+')
        errorLog.write('\nA setup sheet called PROG' + programNumber +
                       ' ' + partNumber + ' ' + revisionNumber +
                       '.ppt was printed.\n')
        errorLog.close()
    else:
        errorLog = open(logBookDir + 'log.txt', 'a+')
        m = ('The exception occurred in printDecoSetupSheet().There does not appear '
             f'to be a .ppt setup sheet file in folder {partNumber} {revisionNumber} '
             f'under {machineType}. Moving on...\n')
        errorLog.write(m)
        errorLog.close()

Отслеживание:

Exception has occurred: NameError name 'file' is not defined   
File "C:\Users\MacalusoC\Desktop\Technical Docs\TLC_Program_Release\Scripts\Program_Release_v4.py", line 348, in printDecoSetupSheet     
  file, 'print')   
File "C:\Users\MacalusoC\Desktop\Technical Docs\TLC_Program_Release\Scripts\Program_Release_v4.py", line 835, in main
  printDecoSetupSheet(scanDestinationPath)   
File "C:\Users\MacalusoC\Desktop\Technical Docs\TLC_Program_Release\Scripts\Program_Release_v4.py", line 869, in <module>
  main()
...