我想从文件中读取一个数组,并将数组中的每个单词添加到用户输入中。假设用户输入是wwww.google.com/
应用程序将数组中的每个单词添加到链接后面,直到列表完成。
google.com/
google.com/test.html
google.com/test1.html
如果我在程序中创建一个数组并且它工作正常,我可以做到这一点,但是当我想从文件中读取时,它不是读取整个单词,而是一个字母一个字母地读取。
google.com/
google.com/t
google.com/e
google.com/s
google.com/t
并继续这样。当它读取文件而不是逐个字母时,如何让它读取整个单词。
如果您需要它来引用数组的示例,这是我的代码:
['test/','test1/','test2/']
website = raw_input(Fore.MAGENTA +"> SITIO PARA SCANEAR: ")
if "http://" not in website:
website ="http://"+ website
with open("test.txt", "r") as ins:
array=[]
for line in ins:
print line
for i in line:
try:
adminpanel = urllib2.urlopen(website+i)
checkurl = adminpanel.code
if checkurl == 200:
print Fore.GREEN+ website+i," "" [+] Encontrado [+]"
continue
else:
print Fore.RED+ website+i," "" [-]Error[-]"
从您的评论中,我了解到您需要遍历文件中作为文本的列表。您可以使用
eval()
:eval
是不安全的来源,建议不要使用它,除非您是整个过程的控制者并且您知道test.txt是安全的...如果你不想使用它
eval
,你有几个选择:您可以以更标准的方式保存网址,以便您可以更“正确”地读取文件。
您可以使用
ast.literal_eval
模块内部的功能ast
。您可以使用以下函数解析test.txt中的文本并将其转换为列表。
使用功能:
该函数适用于您放置的示例,
['test/','test1/','test2/']
但如果该示例更改,它可能会出错。该函数所做的是删除括号和引号,并将最终结果转换为字符串列表,将逗号之间的所有内容分开。如果你想将它集成到@Gocht 留给你的代码中,你可以这样做:
在我看来,最好的选择是第一个,但它会迫使您修改test.txt生成的代码。