2014-07-11 5 views
-1

Je dois ouvrir un fichier, lire une ligne, le hacher, puis l'enregistrer dans un autre fichier. Dois-je ouvrir les deux fichiers texte au début de mon script, ou dois-je les ouvrir chaque fois que je sauvegarde/lis? Je suis nouveau à tout cela et j'utilise python pour android pour sl4a. Ceci est mon code jusqu'à présent:La meilleure façon d'ouvrir deux fichiers

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() 
+1

Apparemment, vous ouvrez un fichier ici? – Bob

+1

Ne pas ouvrir/fermer à chaque fois. D'après mon expérience, c'est plus lent. Quelqu'un d'autre peut faire un benchmark, ou vous pourriez. Ouvrez-les simplement au début et fermez-les tous les deux lorsque vous avez fini de les utiliser. – chilemagic

Répondre

0

Oui devrait ouvrir à la fois au début et itérer à la fermeture lorsque vous avez terminé.

donc au lieu de lire l'entrée de l'utilisateur que vous souhaitez lire si à partir d'un fichier, dire quelque chose comme ceci:

import android 
import hashlib 
import time 
name = 0 
droid = android.Android() 

f_in = open('input.txt', 'r',) 
f_out = open('output.txt', 'w',) 
for line in f_in.readlines(): 
    hash_object = hashlib.md5 (line) 
    f_out.write(hash_object.hexdigest()) 

f_in.close() 
f_out.close() 
+0

qui a bien fonctionné! Merci! maintenant pour insérer char newline et travailler sur le gui ..... – user3530608

1

Si vous voulez lire à partir du fichier name.txt et écrire à un autre:

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 
Questions connexes