У меня есть текстовый файл с миллионами индексных точек, которые все интерпретируются как строки и разделены табуляцией.Однако некоторые индексные точки могут отсутствовать.Вот пример моего текстового файла:
1 0 4 0d 07:00:37.0400009155273
2 0 4 0d 07:00:37.0400009155273
3 0 4 0d 07:00:37.0400009155273
5 0 4 0d 07:00:37.0400009155273
7 0 4 0d 07:00:37.0400009155273
9 0 4 0d 07:00:37.0400009155273
Обратите внимание, что строки 4, 6 и 8 отсутствуют.Моя цель - создать функцию, которая может анализировать текстовый файл, определять возможные отсутствующие индексные точки и возвращать список, в котором есть все отсутствующие индексные точки (если есть), или ничего не возвращать.
Я использую Python3.7 в Spyder IDE Windows10 OS.Я относительно новичок в Python и Stackoverflow.
Это то, что у меня так далеко.Это работает для ID 1 отсутствующего индекса, но завершается неудачей, если есть несколько отсутствующих индексных точек.
Ошибка начинается после первой строки else.Я не уверен, как отследить наблюдаемый индекс в документе (1, 2, 3, 5 ...) с индексом цикла for (0, 1, 2, 3 ...), поскольку отсутствующие индексные точки со временем составляют,
Обратите внимание, что первые 4 строки текстового документа содержат информацию заголовка, которую я игнорирую при разборе, поэтому data = f.readlines () [4:]
def check_sorted_file(fileName):
missing_idx = []
count = 1
with open(fileName, 'r') as f:
data = f.readlines()[4:]
for x, line in enumerate(data):
idx = int(line.split()[0])
if idx == (count + x):
pass
else:
missing_idx.append(count + x)
count += 1
if missing_idx != []:
print('\nThe following idicie(s) are missing: ')
print(*missing_idx, sep=", ")
else:
print('\nAll indices are accounted for. ')
return missing_idx
...
Спасибо за любую помощь!