我已成功使用固定// IP /文件夹/挂载/点安装驱动器,同时提供可互换的用户名和密码,因为NAS具有为每个用户设置的权限。
我的第一次和工作尝试:
subprocess.check_call("sudo mount -t cifs -o username="+txtUsername.get()+",password="txtPassword.get()+" //IP/Folder /Mount/Point", shell=true)
然而,在想要创建一个更加柔软的程序后,我希望能够通过配置菜单更改IP和文件夹以及挂载点。
然而,当我尝试构建命令并将其与shell = true一起使用时,它不起作用并返回“非零退出状态1”作为来自try / except的响应。返回的命令结构为no与我的工作尝试不同,但我插入它的方式是通过变量。
try
password = txtPassword.get()
username = txtUsername.get()
localpath = mountPath
serverAddress = ' //'+serverIP + serverPath +' '+localpath
command = serverAddress
print(command)
subprocess.check_output('sudo mount -t cifs -o username='+username+',password='+password+str(command), shell=True)
#If try fails, caputure error type and store in variable
except subprocess.CalledProcessError as e:
print ("error Message:"+str(e))
****更新****
我做了一些请求,在做了一些研究之后把命令变成了一个参数,但结果没有什么不同,仍然返回“非零退出状态1”
command = "sudo mount -t cifs -o username="+username+" password="+password + " " + serverAddress+ " " + localpath
print(command)
subprocess.check_output(command.split(), shell=False)