Is it possible to modify lines in a file in-place?

前端 未结 5 1224
眼角桃花
眼角桃花 2020-11-22 08:29

Is it possible to parse a file line by line, and edit a line in-place while going through the lines?

5条回答
  •  旧巷少年郎
    2020-11-22 09:01

    Is it possible to parse a file line by line, and edit a line in-place while going through the lines?

    It can be simulated using a backup file as stdlib's fileinput module does.

    Here's an example script that removes lines that do not satisfy some_condition from files given on the command line or stdin:

    #!/usr/bin/env python
    # grep_some_condition.py
    import fileinput
    
    for line in fileinput.input(inplace=True, backup='.bak'):
        if some_condition(line):
            print line, # this goes to the current file
    

    Example:

    $ python grep_some_condition.py first_file.txt second_file.txt
    

    On completion first_file.txt and second_file.txt files will contain only lines that satisfy some_condition() predicate.

提交回复
热议问题