часть кода не работает в версии 2.7

Не могу понять в чем проблема, следующая часть кода работает в python 3 под win 10, однако когда я пытаюсь запустить его в python 2.7.5 на linux получаю ошибку:

NameError: name 'pathSDU' is not defined
import re

dictSDU = {}
dictSCI = {}
for file in os.listdir('/foo/bar/'):
    with open(os.path.join('/foo/bar/', file), 'r') as eddsFile:
        print('opening file ' + file)
        for line in eddsFile:
            if re.findall(r'\w+/ACS/SDU_:$', line):
                pathSDU = line
                pathSDU = pathSDU[:-2]
                print(pathSDU)
            elif re.findall(r'\w+/ACS/ScienceDataFile:$', line):
                pathSCI = line
                pathSCI = pathSCI[:-2]
                print(pathSCI)
            if 'SDU__DACS' in line:
                dictSDU.update({line: pathSDU})
                dictSDU = {re.sub(r'\d+ \d+-\d+-\d+ \d+:\d+', '', key).strip(':\n\r').replace(' ', ''): value.strip(':\n') for key, value in
                           dictSDU.items()}
                print(dictSDU)
            if 'SCI__DACS' in line:
                dictSCI.update({line: pathSCI})
                dictSCI = {re.sub(r'\d+ \d+-\d+-\d+ \d+:\d+', '', key).strip(':\n\r').replace(' ', ''): value.strip(':\n') for key, value in
                           dictSCI.items()}
                print(dictSCI)

Ответы (1 шт):

Автор решения: stickmann

Объявил pathSDU, pathSCI, убрал поиск через re, видимо что-то не так с регулярным выражением, решил не усложнять.

import os
import re

dictSDU = {}
dictSCI = {}
pathSDU = ''
pathSCI = ''
for file in os.listdir('/foo/bar/'):
    with open(os.path.join('/foo/bar/', file), 'r') as eddsFile:
        print('opening file ' + file)
        for line in eddsFile:
            if '/ACS/SDU_:' in line:
                pathSDU = line
                pathSDU = pathSDU[:-2]
                print(pathSDU)
            elif '/ACS/ScienceDataFile:' in line:
                pathSCI = line
                pathSCI = pathSCI[:-2]
                print(pathSCI)
            if 'SDU__DACS' in line:
                dictSDU.update({line: pathSDU})
                dictSDU = {re.sub(r'\d+ \d+-\d+-\d+ \d+:\d+', '', key).strip(':\n\r').replace(' ', ''): value.strip(':\n') for key, value in
                           dictSDU.items()}
                print(dictSDU)
            if 'SCI__DACS' in line:
                dictSCI.update({line: pathSCI})
                dictSCI = {re.sub(r'\d+ \d+-\d+-\d+ \d+:\d+', '', key).strip(':\n\r').replace(' ', ''): value.strip(':\n') for key, value in
                           dictSCI.items()}
                print(dictSCI)
→ Ссылка