how do i convert ['121341']['132324'] (type string) into 2 separate lists python

Question:

i am trying to add some file operation capabilities to a example program, i am strugling with the reading from the file. here is the code that is modified.

def read(fn): 
    fileout=open(f"{fn}","a+")
    fileout.seek(0,0)
    s=fileout.readlines()
    if s==[]:
        print("the file specified does not appear to exists or is empty. if the file does not exist, it will be created")
    else:
        last=s[-1]
        print(last)
        print(type(last))
        convert(last)

def find(last):
    tup=last.partition(".")
    fi=tup[0:1]
    return fi[0]
def convert(last):
    tup=last.partition(".")
    part=tup[2:]
    print(part)
    part=part[0]
    print(part)
    part=part.split("n")
    print(part)
    part=part[0]
    print(part)
    print(type(part))
#__main__
file(fn)

the write functionality writes in the form of
(fileindex number).[(planned campaign)][(conducted campaign)]
example:- some random data writen to the file by the program(first two number are dates)

0.['12hell']['12hh']
1.['12hell']['12hh']
2.['121341']['132324']

but i am strugling to write the read function, i don’t understand how i could convert the data back.

with the current read function i get back

['121341']['132324']

as a string type, i have brainstormed many ideas but could not figureout how to convert string to list(they need to be 2 separate lists)

edit: the flaw as actually in the format that i was writing in, i added a , between the two lists and used eval as suggested in an answer, thanks

Asked By: gamer92144

||

Answers:

Insert a ',' inbetween the brackets, then use eval. This will return a tuple of lists.

strLists = "['121341']['132324']['abcdf']"
strLists = strLists.replace('][', '],[')

evalLists = eval(strLists)


for each in evalLists:
    print(each)

Output:

['121341']
['132324']
['abcdf']
Answered By: chitown88
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.