写入文件而不使用引号

时间:2017-09-24 03:40:08

标签: python telnet

我使用以下代码逐行读取带有主机地址的txt文件,但是当代码创建并写入文件作为日志时,它使用引号和'?'进行写入字符:

代码是这样的:

import getpass
import sys
import telnetlib

user = "cisco"
password = "cisco"

file = open('hosts.txt', 'r')
for line in file:

        tn = telnetlib.Telnet(line)

        tn.read_until("Username: ")
        tn.write(user + "\n")
        tn.read_until("Password: ")
        tn.write(password + "\n")
        tn.write("enable \n")
        tn.write(password + "\n")

        tn.write("sh ver | i revision \n")
        tn.write("exit \n")

        str_all = tn.read_all()
        log = open(line + ".txt","w")
        log.write(str_all)
        tn.close()

所以创建的文件是:

[temp@ser1 Projeto]$ ls
21.10.176.4?.txt  clean_up_819  hosts.txt  master.py  test1.txt  teste.txt

然后,当我使用 cat 时,文件会显示问号:

[noctemp@svcactides Projeto_QoS]$ cat '21.10.176.4
.txt'

有没有办法保存在仅标有 21.10.176.4.txt 的规范化文件中?

1 个答案:

答案 0 :(得分:0)

您的文件名没有引号;那些是由你的shell的tab-completion添加的,以保护 所拥有的换行符。

新行来自line,它可以检测最后一行是否有一个(为了方便起见,重写一个类似的文件)。请参阅How can I remove (chomp) a newline in Python?