open read and close a file in 1 line of code

前端 未结 11 1334

Now I use:

pageHeadSectionFile = open(\'pagehead.section.htm\',\'r\')
output = pageHeadSectionFile.read()
pageHeadSectionFile.close()

But t

11条回答
  •  渐次进展
    2020-11-28 05:46

    If you want that warm and fuzzy feeling just go with with.

    For python 3.6 I ran these two programs under a fresh start of IDLE, giving runtimes of:

    0.002000093460083008  Test A
    0.0020003318786621094 Test B: with guaranteed close
    

    So not much of a difference.

    #--------*---------*---------*---------*---------*---------*---------*---------*
    # Desc: Test A for reading a text file line-by-line into a list
    #--------*---------*---------*---------*---------*---------*---------*---------*
    
    import sys
    import time
    
    #                                  # MAINLINE
    if __name__ == '__main__':
        print("OK, starting program...")
    
        inTextFile = '/Users/Mike/Desktop/garbage.txt'
    
    #                                  # Test: A: no 'with;
        c=[]
        start_time = time.time()
        c = open(inTextFile).read().splitlines()
        print("--- %s seconds ---" % (time.time() - start_time))
    
        print("OK, program execution has ended.")
        sys.exit()                     # END MAINLINE
    

    OUTPUT:

    OK, starting program...
    --- 0.002000093460083008 seconds ---
    OK, program execution has ended.
    
    #--------*---------*---------*---------*---------*---------*---------*---------*
    # Desc: Test B for reading a text file line-by-line into a list
    #--------*---------*---------*---------*---------*---------*---------*---------*
    
    import sys
    import time
    
    #                                  # MAINLINE
    if __name__ == '__main__':
        print("OK, starting program...")
    
        inTextFile = '/Users/Mike/Desktop/garbage.txt'
    
    #                                  # Test: B: using 'with'
        c=[]
        start_time = time.time()
        with open(inTextFile) as D: c = D.read().splitlines()
        print("--- %s seconds ---" % (time.time() - start_time))
    
        print("OK, program execution has ended.")
        sys.exit()                     # END MAINLINE
    

    OUTPUT:

    OK, starting program...
    --- 0.0020003318786621094 seconds ---
    OK, program execution has ended.
    

提交回复
热议问题