Чтобы удалить определенные строки из файла csv, я хочу добавить значение ID в мои строки. Конечно, это можно сделать несколькими способами, и я был бы признателен за ввод возможных способов генерации идентификаторов. Предпочтительны простые и короткие, но хорошие способы.Каким будет лучший способ генерировать идентификаторы, чтобы сделать строки индивидуальными?
Возможно, случайный большое количество используя random.randint(00000, 99999)
например? Но нужно проверить для возможных дубликатов, заставив меня подумать, что есть лучшее решение.
Другой способ: прочитать файл csv добавить 1
к некоторой переменной для каждой строки. Возможно, вам даже понадобится выяснить способ проверки того, что данная строка содержит фактическое содержимое csv и не является результатом \n
. Я пробовал это и имел успех, но код просто очень длинный и уродливый.
Держу пари, что есть лучшие способы, о которых я не могу думать. Мое прохождение можно найти ниже. Он работает для моего конкретного mangemant строки и способа добавления новых строк. Это то, что я использовал к этому моменту.
Я ищу решение для Python 3+, если это не очевидно.
import os
def ID(filename):
if os.path.isfile(filename):
if os.path.getsize() == 0:
return 1
else:
ID = 1
[ID += 1 for line in open(filename, "r")]
return ID
else:
return 1
Это может быть более очевидным, если вы добавили несколько букв в начале ID: myID1, myID2, myID3 ... Добавление начальных нулей может также улучшить читаемость: myID00001. myID00002 ... – rossum
Какова цель этих идентификаторов? Знание этого поможет определить подходящую или оптимальную технику. – martineau
@martineau Небольшая программа для добавления/удаления/списка записей, например, лекарств, которые вы принимали, чтобы отслеживать их. Или еда/калории. Что-то вроде того. Вот почему 16-значный ключ не подходит. Вы должны иметь возможность легко удалить его с помощью argparse. '--remove 1232' например. – xvx