打开两个文件的最佳方法
我需要打开一个文件,读取一行内容,然后对这行内容进行哈希处理,最后把结果保存到另一个文件里。我想知道在我的脚本开始时应该同时打开这两个文本文件,还是每次读取或保存时都单独打开一次?我对这些还很陌生,现在用的是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())