Python: AttributeError: '_io.TextIOWrapper' object has no attribute 'split'

前端 未结 3 1518
清歌不尽
清歌不尽 2020-11-29 03:36

I have a textfile, let\'s call it goodlines.txt and I want to load it and make a list that contains each line in the text file.

I tried using the

相关标签:
3条回答
  • 2020-11-29 03:50

    You are using str methods on an open file object.

    You can read the file as a list of lines by simply calling list() on the file object:

    with open('goodlines.txt') as f:
        mylist = list(f)
    

    This does include the newline characters. You can strip those in a list comprehension:

    with open('goodlines.txt') as f:
        mylist = [line.rstrip('\n') for line in f]
    
    0 讨论(0)
  • 2020-11-29 03:59

    Try this:

     >>> f = open('goodlines.txt')
     >>> mylist = f.readlines()
    

    open() function returns a file object. And for file object, there is no method like splitlines() or split(). You could use dir(f) to see all the methods of file object.

    0 讨论(0)
  • 2020-11-29 04:06

    You're not reading the file content:

    my_file_contents = f.read()
    

    See the docs for further infos

    You could, without calling read() or readlines() loop over your file object:

    f = open('goodlines.txt')
    for line in f:
        print(line)
    

    If you want a list out of it (without \n as you asked)

    my_list = [line.rstrip('\n') for line in f]
    
    0 讨论(0)
提交回复
热议问题