У меня есть три функции, readHeader
thet читает заголовок txt-файла, readExpertsFile
, который читает содержимое файла, и exceptionNH
функция, которая сравнивает имя файла и заголовок и вызывает исключение, еслиони несовместимы (например, если дата в имени не совпадает с заголовком).
Вот три функции и пример текста:
def readHeader(fileName):
fileIn = open(fileName, "r")
fileIn.readline()
day = fileIn.readline().replace("\n", "")
fileIn.readline()
time = fileIn.readline().replace("\n", "")
fileIn.readline()
company = fileIn.readline().replace("\n", "")
scope = fileIn.readline().replace(":", "").replace("\n", "")
fileIn.close()
return (day, time, company, scope)
def readFile(fileName):
expertsList = []
expertsList.append(readHeader(fileName))
fileIn = open(fileName, "r")
for line_counter in range(LNHEADER):
fileIn.readline()
fileInE.close()
return expertsList
def exceptionNH(fileName):
try:
assert fileName[10:17] == readFile(fileName)[3][0].lower().replace(":", "")
except AssertionError:
print("Error in input file: inconsistent name and header in file", fileName,".")
exit()
fileName = "file.txt"
exceptionNH("2018y03m28experts10h30.txt")
2018y03m28experts10h30.txt:
Day:
2018-03-28
Time:
10:30
Company:
XXX
Experts:
...
...
Моя проблема здесь в том, что в операторе try я ожидаю, что assert «видит» сравнение как True
и пропускает предложение кроме, но этого не происходит.
Я подозреваю, что .lower()
не работает, но я не могу понять, почему.
Если вы видите другие вещи, которыми можно поделиться, не стесняйтесь делиться, так как я новичок в Python и хочу улучшить себя.