从另一个文本文件提供SFTP服务器凭据

时间:2019-06-03 06:13:58

标签: python python-3.x pysftp

我在下面编写了一个python脚本,通过从另一个文本文件中提供服务器凭据(例如IP,USERNAME,PASSWORD)来建立与服务器的SFTP连接。即使我成功了,我也不认为这是最好的方法,请提出一些建议,以便我改善代码

文本文件格式:

127.0.0.1,jack,password

我的代码:

import os
import pysftp
import socket
from stat import S_IMODE, S_ISDIR, S_ISREG
import time
import os.path
import shutil
import fileinput
import lock

cnopts = pysftp.CnOpts()
cnopts.hostkeys = None

f = open("text.txt", "r")

for line in f:
    words = line.split(',')
    IP=words[0]
    myUsername=words[1]
    myPassword=words[2]
    print(IP)
    print(myUsername)
    print(myPassword)

    with pysftp.Connection(host=IP, username=myUsername, password=myPassword, cnopts=cnopts) as sftp:
        print("connection successful")

1 个答案:

答案 0 :(得分:1)

由于文件格式看起来像csv,因此可以使用csv模块。

import csv
with open("text.txt", "r") as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=',')
    for row in csv_reader:
        print(row)

row是一个列表,其中包含ip,用户名和密码

  

示例:

文本文件:

127.0.0.1,jack,password
127.0.0.1,jack2,password2
127.0.0.1,jack3,password3

输出:

> ['127.0.0.1', 'jack', 'password']
> ['127.0.0.1', 'jack2', 'password2']
> ['127.0.0.1', 'jack3', 'password3']

请注意,密码字符串中可能包含,。 无论如何,将密码存储在文本文件中并不是一个好的解决方案。