Best method for reading newline delimited files and discarding the newlines?

后端 未结 7 1080
孤城傲影
孤城傲影 2020-11-28 03:07

I am trying to determine the best way to handle getting rid of newlines when reading in newline delimited files in Python.

What I\'ve come up with is the following c

相关标签:
7条回答
  • 2020-11-28 03:48

    Here's a generator that does what you requested. In this case, using rstrip is sufficient and slightly faster than strip.

    lines = (line.rstrip('\n') for line in open(filename))
    

    However, you'll most likely want to use this to get rid of trailing whitespaces too.

    lines = (line.rstrip() for line in open(filename))
    
    0 讨论(0)
  • 2020-11-28 03:50

    Just use generator expressions:

    blahblah = (l.rstrip() for l in open(filename))
    for x in blahblah:
        print x
    

    Also I want to advise you against reading whole file in memory -- looping over generators is much more efficient on big datasets.

    0 讨论(0)
  • 2020-11-28 03:55

    What do you think about this approach?

    with open(filename) as data:
        datalines = (line.rstrip('\r\n') for line in data)
        for line in datalines:
            ...do something awesome...
    

    Generator expression avoids loading whole file into memory and with ensures closing the file

    0 讨论(0)
  • 2020-11-28 03:56

    I use this

    def cleaned( aFile ):
        for line in aFile:
            yield line.strip()
    

    Then I can do things like this.

    lines = list( cleaned( open("file","r") ) )
    

    Or, I can extend cleaned with extra functions to, for example, drop blank lines or skip comment lines or whatever.

    0 讨论(0)
  • 2020-11-28 03:56

    I'd do it like this:

    f = open('test.txt')
    l = [l for l in f.readlines() if l.strip()]
    f.close()
    print l
    
    0 讨论(0)
  • 2020-11-28 03:59
    lines = open(filename).read().splitlines()
    
    0 讨论(0)
提交回复
热议问题