У меня проблема с разделением списка в Python (решено)

Я читаю файл в список. Теперь я хочу, чтобы после каждой комы, которая у меня есть в моем списке, был новый индекс. К настоящему времени все помещено в индекс 0.

соответствующий код:

def add_playlist():
playlist_file_new =filedialog.askopenfilename(initialdir=f'C:/Users/{Playlist.username}/Music',filetypes=[('Playlistdateien','.txt')])
with open (playlist_file_new,'r') as filenew:
    filenew_content = list(filenew.readlines())
    print(filenew_content[0])

Итак, что мне нужно сделать, чтобы после каждой запятой начинался новый индекс? Пожалуйста, помогите мне, и я благодарю вас заранее. Также извините, если это действительно простой вопрос, я действительно новичок в программировании.

Так что в основном ваш новый персонаж строки — это ,, а не \n. Поэтому вместо readlines используйте read, чтобы все данные были в виде строки. Затем вы можете split данные ,.

MSH 05.04.2022 23:49

Как выглядит текстовый файл? Если у меня есть ваши входные данные, я могу дать рабочий ответ.

Captain Caveman 05.04.2022 23:53

Проблема в том, что тогда он печатает только один символ, а не целую строку. Таким образом, вся эта строка 'C:/Users/kevin/Music/y2meta.com - Big Boi - Kryptonite (VANE & ZVBXR Remix) (320 kbps).mp3' становится "(" в индексе 0, " ' " в индексе 1, "C" в индексе 2 и так далее. Код: filenew_content = filenew.read() filenew_content.split(",") print(filenew_content[1])

baumanager 05.04.2022 23:55
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
51
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Вероятно, вам нужна функция .split(): https://docs.python.org/3/library/stdtypes.html#str.split

Вместо list() используйте str.split(). Для этого вы не можете использовать readlines(), так как она возвращает список строк.

Вы ищете что-то вроде этого:

filenew_content = playlist_file_new.read().split(",")

Это берет файловый объект, получает строку, содержащую его содержимое, и разбивает ее на список, используя запятую в качестве разделителя.

Ответ принят как подходящий

Я не пробовал ваш код, но я бы сделал это так:

with open (playlist_file_new,'r') as filenew:
    filenew_content = filenew.read()
    filenew_content_list = filenew_content.split(",")

Это считывает данные полный (пожалуйста, будьте осторожны с файлами, размер которых превышает вашу рабочую память (ОЗУ)) вашего файла в переменную filenew_content. Он возвращается в виде строки. Строковые объекты в Python имеют метод split(), где вы можете определить строку, на которую должна быть разделена ваша большая строка.

Если вы хотите превратить list[str] в list[str, str, str…], вы можете использовать метод str.split(str). См. следующее:

l = ["hello,world,this,is,a,list"]
new_l = l[0].split(",")
print(new_l)
>>> ["hello", "world", "this", "is", "a". "list"]

Метод string.split(',') должен работать. Например

# loop over all the lines in the file
for line in filenew.readlines():
    items = line.strip().split(',')
    # strip strips the line of leading and trailing whitespace. 
    # split returns a tuple of all the strings created by 
    # splitting at the given character.

    # loop over all the items in the line
    for item in items:
        # add them to the list
        filenew_content.append(item)

См. также: Документация Python для строк

Другие вопросы по теме