#python #csv
#python #csv
Вопрос:
Я хочу выполнить поиск шаблона (например, «0,22,33,43,12,26,18,47,41») в файле CSV (например, Lavender,22,33,43,12,26,18,47,41) и получите название (Лаванда). Но я не могу использовать какие-либо функции модуля ‘re’, потому что CSV-файл предоставляет список элементов (например, «[‘Albus’, ’15’, ’49’, ’38’, ‘5’, ’14’, ’44’, ’14’, ’12’]»).
Вот часть кода:
first = []
other = ''
with open(sys.argv[1], 'r') as data:
dataread = csv.reader(data)
first = next(dataread)
first.pop(0)
for row in dataread:
other = str(row)
Я попытался преобразовать его в строку с помощью » и str, но он по-прежнему показывает эти скобки.
pattern = re.compile(rf'([a-zA-Z] ),({maxStr})')
result = re.search(pattern, other)
if result:
print(result.group(1))
else:
print("No match")
Комментарии:
1. Почему бы вам просто не открыть файл и не прочитать его построчно?
2. Как говорит @MilesDavis примерно так
with open('sample.csv', 'r') as csvfile: csvtext = csvfile.readlines()
или как целая строкаwith open('sample.csv', 'r') as csvfile: csvtext = csvfile.readl()
Ответ №1:
with open('sample.csv', 'r') as csvfile:
csvtext = csvfile.readlines()
Ответ №2:
вы могли бы использовать join .
смотрите здесь добавление join вместо other = str(строка)
with open(sys.argv[1], 'r') as data:
dataread = csv.reader(data)
first = next(dataread)
first.pop(0)
for row in dataread:
other = ', '.join(row)
Другое возвращает строку, из которой вы можете ее «переделать».