Search code examples
pythonlistpython-3.xfile-read

Breaking txt file into list of lists by character and by row


I am just learning to code and am trying to take an input txt file and break into a list (by row) where each row's characters are elements of that list. For example if the file is:

abcde
fghij
klmno

I would like to create

[['a','b','c','d','e'], ['f','g','h','i','j'],['k','l','m','n','o']]

I have tried this, but the results aren't what I am looking for.

file = open('alpha.txt', 'r')
lst = []
for line in file:
    lst.append(line.rstrip().split(','))
print(lst)
[['abcde', 'fghij', 'klmno']]

I also tried this, which is closer, but I don't know how to combine the two codes:

file = open('alpha.txt', 'r')
lst = []
for line in file:
    for c in line:
        lst.append(c)
print(lst)
['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o']

I tried to add the rstrip into the lst.append but it didn't work (or I didn't do it properly). Sorry - complete newbie here!

I should mention that I don't want newline characters included. Any help is much appreciated!


Solution

  • If you want to split a string to it's charts you can just use list(s) (where s = 'asdf'):

    file = open('alpha.txt', 'r')
    lst = []
    for line in file:
        lst.append(list(line.strip()))
    
    print(lst)