как прочитать каждую строку текстового файла и преобразовать каждую строку в кортеж?

#python #list #tuples

#python #Список #Кортежи

Вопрос:

Я пытаюсь прочитать текстовый файл построчно и преобразовать каждую строку в кортеж. это мои данные текстового файла

даниал фелдрой — две ложки django

джеймс — python для всех

Мне нужно прочитать и преобразовать каждую строку в кортеж, подобный этому ("danial feldroy "," two scoops of django") ("james "," python for everyone")

и я должен добавить эти кортежи в список

 nt = open('my_file.txt').readlines()
names_title = []
for book in nt:
    a = book.replace('-',',')
    convert_to_tuple = tuple(a)
    print(a)
    #but i have to remove the white spaces as well
  

Результат :

 danial feldroy , two scoops of django
  

Я ожидаю этого

 danial feldroy,two scoops of django
    
  

затем я хочу изменить каждую строку на кортеж

 ("danial feldroy","two scoops of django")
  

но всякий раз, когда я использую tuple() , это работает не так, как я ожидал?

и вывод для кортежей

 ('d','a','n','i','a','l' etc ..
  

Я ожидал этого ("danial feldroy","two scoops of django") !

Комментарии:

1.Вы печатаете строку, которая получается в результате замены - строки из файла на a , . Вы никогда не печатаете кортеж. Вы никогда не добавляете кортеж в список. Вы используете неправильный способ создания кортежа — вы ищете str.split() и str.strip() как отлаживать небольшие программы.

2. да, я сделал это в своем ноутбуке jupyter, я хочу написать короткий вопрос, чтобы быть более читаемым

3. итак, как создать правильный кортеж для текста?

Ответ №1:

Вы пытались изменить то, что внутри цикла на :

  nt = open('my_file.txt').readlines()
 names_title = []
 for book in nt:
     data_tuple = (x.strip() for x in book.split('-'))
     print(data_tuple)
  

Проблема в том, что вы пытаетесь преобразовать строки в кортежи, которые можно повторять и приводить каждый символ к определенному символу строки.
Вместо split() этого вы разделите нужные части на некоторый символ

Комментарии:

1. спасибо, но как изменить кортеж каждой строки после запуска strip()

2. Это понимание кортежа, поэтому вы уже получаете его как кортеж …. это своего рода цикл for …

3. я проверил, тип — string с помощью type()