打开两个文件的最佳方法

2 投票
2 回答
8878 浏览
提问于 2025-04-18 13:00

我需要打开一个文件,读取一行内容,然后对这行内容进行哈希处理,最后把结果保存到另一个文件里。我想知道在我的脚本开始时应该同时打开这两个文本文件,还是每次读取或保存时都单独打开一次?我对这些还很陌生,现在用的是Python在Android上进行sl4a开发。这是我目前的代码:

import android
import hashlib
import time
name = 0
droid = android.Android()
name = raw_input("Enter a password to hash: ")
hash_object = hashlib.md5 (name)
print(hash_object.hexdigest())
time.sleep(2)
print name

f = open('name.txt', 'w',) 
f.write(hash_object.hexdigest())
f.close()

2 个回答

20

如果你想从一个文件 name.txt 中读取内容,并把这些内容写入另一个文件:

with open('name.txt', 'r') as f, open('out.txt', 'w') as f1:
    line = f.next()  # get first line
    hash_object = hashlib.md5 (line)
    f1.write(hash_object.hexdigest()) # write to second file
-2

是的,应该在开始的时候打开两个文件,然后在完成后逐个关闭它们。

所以,不是从用户那儿输入数据,而是想从文件中读取数据,可以这样做:

import android
import hashlib
import time
name = 0
droid = android.Android()
 
with open('input.txt', 'r') as f_in, open('output.txt', 'w') as f_out:
for line in f_in.readlines():
    hash_object = hashlib.md5 (line)
    f_out.write(hash_object.hexdigest())
    

撰写回答