Я читаю файл в список. Теперь я хочу, чтобы после каждой комы, которая у меня есть в моем списке, был новый индекс. К настоящему времени все помещено в индекс 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])
Итак, что мне нужно сделать, чтобы после каждой запятой начинался новый индекс? Пожалуйста, помогите мне, и я благодарю вас заранее. Также извините, если это действительно простой вопрос, я действительно новичок в программировании.
Как выглядит текстовый файл? Если у меня есть ваши входные данные, я могу дать рабочий ответ.
Проблема в том, что тогда он печатает только один символ, а не целую строку. Таким образом, вся эта строка '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])
Вероятно, вам нужна функция .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 для строк
Так что в основном ваш новый персонаж строки — это
,
, а не\n
. Поэтому вместоreadlines
используйтеread
, чтобы все данные были в виде строки. Затем вы можетеsplit
данные,
.