Как я могу получить строку из csv-файла вместо списка?

#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)
  

Другое возвращает строку, из которой вы можете ее «переделать».