Delete newline / return carriage in file output

后端 未结 6 1505
无人及你
无人及你 2020-12-16 16:55

I have a wordlist that contains returns to separate each new letter. Is there a way to programatically delete each of these returns using file I/O in Python?

Edit

相关标签:
6条回答
  • 2020-12-16 17:29

    simply use, it solves the issue.

       string.strip("\r\n")
    
    0 讨论(0)
  • 2020-12-16 17:30
    >>> string = "testing\n"
    >>> string
    'testing\n'
    >>> string = string[:-1]
    >>> string
    'testing'
    

    This basically says "chop off the last thing in the string" The : is the "slice" operator. It would be a good idea to read up on how it works as it is very useful.

    EDIT

    I just read your updated question. I think I understand now. You have a file, like this:

    aqua:test$ cat wordlist.txt 
    Testing
    
    This
    
    Wordlist
    
    With
    
    Returns
    
    Between
    
    Lines
    

    and you want to get rid of the empty lines. Instead of modifying the file while you're reading from it, create a new file that you can write the non-empty lines from the old file into, like so:

    # script    
    rf = open("wordlist.txt")
    wf = open("newwordlist.txt","w")
    for line in rf:
        newline = line.rstrip('\r\n')
        wf.write(newline)
        wf.write('\n')  # remove to leave out line breaks
    rf.close()
    wf.close()
    

    You should get:

    aqua:test$ cat newwordlist.txt 
    Testing
    This
    Wordlist
    With
    Returns
    Between
    Lines
    

    If you want something like

    TestingThisWordlistWithReturnsBetweenLines
    

    just comment out

    wf.write('\n')
    
    0 讨论(0)
  • 2020-12-16 17:39

    Remove empty lines in the file:

    #!/usr/bin/env python
    import fileinput
    
    for line in fileinput.input("wordlist.txt", inplace=True):
        if line != '\n':
           print line,
    

    The file is moved to a backup file and standard output is directed to the input file.

    0 讨论(0)
  • 2020-12-16 17:42

    You can use a string's rstrip method to remove the newline characters from a string.

    >>> 'something\n'.rstrip('\r\n')
    >>> 'something'
    
    0 讨论(0)
  • 2020-12-16 17:51

    The most efficient is to not specify a strip value

    '\nsomething\n'.split() will strip all special characters and whitespace from the string

    0 讨论(0)
  • 2020-12-16 17:52
    'whatever\r\r\r\r\r\r\r\r\n\n\n\n\n'.translate(None, '\r\n')
    

    returns

    'whatever'
    
    0 讨论(0)
提交回复
热议问题