2015-11-26 60 views
1

我是新来的Python,我想知道如何保存这个哈希密码列表(存储在变量密码的Python:导出文本列表到一个文本文件

['73868cb1848a216984dca1b6b0ee37bc', '2de9210e9173ca4151bb220a2ded6cdb', '8c064f4067cf0c59c68ec281f5786cb2'] 

在格式的文本文件:

73868cb1848a216984dca1b6b0ee37bc 
2de9210e9173ca4151bb220a2ded6cdb 
8c064f4067cf0c59c68ec281f5786cb2 

目前我可以将它保存到一个文本文件,但它保存为

['73868cb1848a216984dca1b6b0ee37bc', '2de9210e9173ca4151bb220a2ded6cdb', '8c064f4067cf0c59c68ec281f5786cb2'] 

当前代码保存文件:

f = open('hash.txt', 'w') 
f.write(repr(passwords) + '\n') 
f.close() 

请帮助:)谢谢

原因想在文本保存的,所以我可以调用一个新的脚本列表但对其进行解密,因为它保存为一个列表(并作为一个列表导入),它会在列表中创建一个列表并混淆我的解密脚本。

编辑:谢谢大家的伟大答案:)其巨大的帮助!

+0

所以你的问题是,当你尝试导入该文件正在创建另一个列表? – Inkblot

+0

@Inkblot是的,所以我想通过将它保存为不同的格式来解决我的问题。当我导入文件(在另一个脚本),它出来的: '[ “[ '73868cb1848a216984dca1b6b0ee37bc', '2de9210e9173ca4151bb220a2ded6cdb', '8c064f4067cf0c59c68ec281f5786cb2'] \ n”]' –

回答

0

你可以像这样保存:

with open('hash.txt', 'w') as f: 
    f.write('\n'.join(passwords)) 

这实现了你所要做的。 (你可以避开与语句)

装载方法:

passwords = [] 
with open('hash.txt', 'r') as f: 
    passwords.extend(f.read().split('\n')) 

使用Python 3,你必须要小心的字节转换第一个为str ...

映入眼帘。

编辑:

对不起,那一定是passwords.extend() - 不passwords.append()

+0

当试图加载(我之后打印密码)和它的打印这样的:'[[“73868cb1848a216984dca1b6b0ee37bc”,“2de9210e9173ca4151bb220a2ded6cdb”,“8c064f4067cf0c59c68ec281f5786cb2”]]' 你知道如何解决这一问题?再次感谢(列表中的列表) –

+0

对不起,刚刚看到最新的编辑。谢谢:)它现在的作品 –

+0

对不起,我忘了标记编辑。 – Hendrik

0

您可以使用下面的代码:当你必须拿出从列表中取出值

f = open('hash.txt', 'w') 
for a in passowrds: 
f.write(a + '\n') #you have to pass them as separate variables 
f.close() 

,您可以使用for循环

list = ["cat","dog","lion"] 
for animal in list: 
    print animal 

这将打印列表中的每个动物。您可以使用任何其他变量名称代替动物。

+0

为什么要使用'再版(一)'? - python2中'a'就足够了。 – Hendrik

+0

编辑答案 – Sanidhay

0

您应该使用readlines()从文件中的文本传递到列表,并使用该列表,像这样:

passwords = [] 

with open('hash.txt', 'r') as f: 
    passwords = f.readlines() 
f.close() 

如果您遇到'\n',那么就使用类似"".join(passwords)

+0

我认为问题在于,该文件格式错误,因为它是用'repr()'编写的,而不是它不能被读取。 – Hendrik

+0

看看OP的问题下面的意见,他说了一个不同的问题或至少与原始问题略有不同 – Inkblot

+0

问题是,他将它保存在一行中,这使得解析不必要的复杂。这就是为什么他的剧本以'['['...','...',...]“]的形式读取它的原因。 将它保存为多行比较容易。 – Hendrik

0

要打开:

f = open('hash.txt', 'w') 

为了节省:

f.write(file_path) 
相关问题