When should I ever use file.read() or file.readlines()?

后端 未结 4 1579
天涯浪人
天涯浪人 2020-12-01 01:39

I noticed that if I iterate over a file that I opened, it is much faster to iterate over it without \"read\"-ing it.

i.e.

l = open(\'file\',\'r\')
         


        
4条回答
  •  旧时难觅i
    2020-12-01 02:04

    The short answer to your question is that each of these three methods of reading bits of a file have different use cases. As noted above, f.read() reads the file as an individual string, and so allows relatively easy file-wide manipulations, such as a file-wide regex search or substitution.

    f.readline() reads a single line of the file, allowing the user to parse a single line without necessarily reading the entire file. Using f.readline() also allows easier application of logic in reading the file than a complete line by line iteration, such as when a file changes format partway through.

    Using the syntax for line in f: allows the user to iterate over the file line by line as noted in the question.

    (As noted in the other answer, this documentation is a very good read):

    https://docs.python.org/2/tutorial/inputoutput.html#methods-of-file-objects

    EDIT: It was previously claimed that readline() could be used to skip a line during a for loop iteration. However, this doesn't work in python 2.7, and is perhaps a questionable practice, so this claim has been removed.

    EDIT: Added an example of a use case of f.readline() and f.read()

提交回复
热议问题