从另一个文本文件提供 SFTP 服务器凭据
giving SFTP server credentials from another text file
我在下面编写了一个 python 脚本,通过从另一个文本文件提供服务器凭据(如 IP、用户名、密码)来建立到服务器的 SFTP 连接。尽管我成功了,但我认为这不是最好的方法,请提出一些建议,以便我改进代码
文本文件格式:
127.0.0.1,jack,密码
我的代码:
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")
由于您的文件格式类似于 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,username,pass
的列表
Example:
文本文件:
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']
注意密码字符串中可能包含 ,
。
无论如何,将密码存储在文本文件中并不是一个好的解决方案。
我在下面编写了一个 python 脚本,通过从另一个文本文件提供服务器凭据(如 IP、用户名、密码)来建立到服务器的 SFTP 连接。尽管我成功了,但我认为这不是最好的方法,请提出一些建议,以便我改进代码
文本文件格式:
127.0.0.1,jack,密码
我的代码:
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")
由于您的文件格式类似于 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,username,pass
Example:
文本文件:
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']
注意密码字符串中可能包含 ,
。
无论如何,将密码存储在文本文件中并不是一个好的解决方案。