在python中读取/写入文件的更好方法?

Hem*_*ant 1 python file-handling

假设我有一个文件(比方说file1.txt),数据大约3mb或更多.如果我想将这些数据写入第二个文件(比方说file2.txt),以下哪种方法会更好?

使用的语言:Python 2.7.3

方法1:

file1_handler = file("file1.txt", 'r')
for lines in file1_handler:
    line = lines.strip()
    # Perform some operation
    file2_handler = file("file2.txt", 'a')
    file2_handler.write(line)
    file2_handler.write('\r\n')
    file2_handler.close()
file1_handler.close()
Run Code Online (Sandbox Code Playgroud)

方法2:

file1_handler = file("file1.txt", 'r')
file2_handler = file("file2.txt", 'a')
for lines in file1_handler:
    line = lines.strip()
    # Perform some operation
    file2_handler.write(line)
    file2_handler.write('\r\n')
file2_handler.close()
file1_handler.close()
Run Code Online (Sandbox Code Playgroud)

我认为方法二会更好,因为你只需打开和关闭file2.txt一次.你说什么?

Pav*_*sov 6

使用with,它会自动关闭文件:

with open("file1.txt", 'r') as in_file, open("file2.txt", 'a') as out_file:
    for lines in in_file:
        line = lines.strip()
        # Perform some operation
        out_file.write(line)
        out_file.write('\r\n')
Run Code Online (Sandbox Code Playgroud)

open代替使用file,file不推荐使用.

当然,在file1的每一行上打开file2是不合理的.