I'm reading a file into a list. Now I want, that every after coma which I have in my list, there should be a new index. By now, everything is placed in index 0.
relevanted Code:
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])
So, what do I have to do, so that after every comma there starts a new index ? Please help me and I thank you in advance. Also I'm sorry if this is a really basic question, I'm really new into programming.
CodePudding user response:
Instead of using list()
, use str.split()
. To do this, you can't use readlines(), as that returns a list of lines.
You're looking for something like this:
filenew_content = playlist_file_new.read().split(",")
This takes the file object, gets a string containing it's contents, and splits it into a list, using a comma as the separator.
CodePudding user response:
I didn't try your code but I would do it like this:
with open (playlist_file_new,'r') as filenew:
filenew_content = filenew.read()
filenew_content_list = filenew_content.split(",")
That reads the complete data(please be careful with files bigger than your working memory(RAM)) of your file into the variable filenew_content. It is returned as string. The string objects in Python have the method "split()", where you can define a string where your bigger string should be splitted.
CodePudding user response:
Probably what You want is .split()
function: https://docs.python.org/3/library/stdtypes.html#str.split
CodePudding user response:
If you mean you want to turn list[str]
into list[str, str, str…]
, you can use the str.split(str)
method. See the following:
l = ["hello,world,this,is,a,list"]
new_l = l[0].split(",")
print(new_l)
>>> ["hello", "world", "this", "is", "a". "list"]
CodePudding user response:
The string.split(',') method should work. for example
# 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)
See also: Python documentation for strings