结合 Tkinter 和 SSHFS 以便在远程服务器上使用 tkFileDialog
Combining Tkinter and SSHFS in order to use tkFileDialog on remote server
我想为我的应用程序 selecting 远程服务器上的文件提供一个简单的 GUI。 Tkinter 小部件本身不支持此功能,因此我正在寻找一些解决方法。我的本地机器是Mac,远程机器是CentOS 6.9.
我需要的进程类型是这样的:用户selects 一个远程文件。 python 脚本用于从此文件中提取信息,并将其写入同一目录中的新文件。
用户通过 filename = input("Path to file: ")
提供文件名可能更简单,但这要求用户首先从远程服务器获取路径。理想情况下,我希望应用程序是自洽的。
SSHFS可以和tkFileDialog
模块结合使用吗?用户将遍历已挂载的文件系统,select 文件,将执行操作,新文件将存储在已挂载的文件系统中并自动传输到远程系统。可能吗?
或者,疯狂的想法:我会在本地重新创建远程 $HOME
文件结构,但只创建一个临时目录和一堆正确命名的空文件。用户可以遍历这个 "fake" 文件系统,select 感兴趣的文件,然后应用程序可以使用这个路径来检索文件,执行操作,并发回新文件......好吧,也许不是最优雅的解决方案....
我在笔记本 (Linux Mint
) 上测试了 sshfs
以访问 Raspberry Pi 上的远程文件夹(Raspbian
基于 Debian
)并且它可以挂载远程文件夹作为本地文件夹,然后我可以使用 Python 和其他程序来处理远程文件。
要安装它:
mkdir local_pi
sshfs pi@192.168.1.100:/home/pi/ local_pi
# here ask for password of user `pi`
它将远程文件夹 /home/pi/
安装为本地文件夹 local_pi
并阻止对 /home/
的访问,因此它可以限制对某些文件夹及其子文件夹的访问。
我在 Python 中进行了测试并且有效:
tkFileDialog.askopenfilename()
到 select 文件
- 标准
open()
、read()
、write()
读写文件
os.makedirs(dirname)
创建文件夹
os.listdir(dirname)
获取文件夹中的文件名
我想为我的应用程序 selecting 远程服务器上的文件提供一个简单的 GUI。 Tkinter 小部件本身不支持此功能,因此我正在寻找一些解决方法。我的本地机器是Mac,远程机器是CentOS 6.9.
我需要的进程类型是这样的:用户selects 一个远程文件。 python 脚本用于从此文件中提取信息,并将其写入同一目录中的新文件。
用户通过 filename = input("Path to file: ")
提供文件名可能更简单,但这要求用户首先从远程服务器获取路径。理想情况下,我希望应用程序是自洽的。
SSHFS可以和tkFileDialog
模块结合使用吗?用户将遍历已挂载的文件系统,select 文件,将执行操作,新文件将存储在已挂载的文件系统中并自动传输到远程系统。可能吗?
或者,疯狂的想法:我会在本地重新创建远程 $HOME
文件结构,但只创建一个临时目录和一堆正确命名的空文件。用户可以遍历这个 "fake" 文件系统,select 感兴趣的文件,然后应用程序可以使用这个路径来检索文件,执行操作,并发回新文件......好吧,也许不是最优雅的解决方案....
我在笔记本 (Linux Mint
) 上测试了 sshfs
以访问 Raspberry Pi 上的远程文件夹(Raspbian
基于 Debian
)并且它可以挂载远程文件夹作为本地文件夹,然后我可以使用 Python 和其他程序来处理远程文件。
要安装它:
mkdir local_pi
sshfs pi@192.168.1.100:/home/pi/ local_pi
# here ask for password of user `pi`
它将远程文件夹 /home/pi/
安装为本地文件夹 local_pi
并阻止对 /home/
的访问,因此它可以限制对某些文件夹及其子文件夹的访问。
我在 Python 中进行了测试并且有效:
tkFileDialog.askopenfilename()
到 select 文件- 标准
open()
、read()
、write()
读写文件 os.makedirs(dirname)
创建文件夹os.listdir(dirname)
获取文件夹中的文件名