我在下面编写了一个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")
答案 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']
请注意,密码字符串中可能包含,
。
无论如何,将密码存储在文本文件中并不是一个好的解决方案。