在 python 中写入远程服务器上的文件
write to file on a remote server in python
有什么方法可以写入位于另一台服务器上的文件吗?
我可以访问具有大量资源(CPU、GPU、RAM 等)的强大服务器来执行复杂的 python 代码,但存储量非常有限(不到 1GB ).另一方面,我在另一台没有计算资源的服务器上有无限存储 space。
我需要一种方法来将 python 代码在一台服务器中的结果写入另一台服务器。类似于以下内容:
f = open('www.example.com/data.txt')
f.write(pythoncode.results)
我知道我可以简单地使用 liburl 读取远程文件:
import urllib3
http = urllib3.PoolManager()
r = http.request('GET', 'www.example.com/data.txt')
r.data
所以我正在寻找类似的东西来写作而不是阅读。
(我可以授予远程文件写权限,虽然我知道这通常不是一个好主意)。
提前致谢。
您需要使用某种协议通过网络进行通信并写入文件。您提供了一个使用 HTTP 协议 GET
来自服务器的文件(或资源)的示例。 (HTTP也提供PUT
和POST
方法在服务器上创建和更新资源,但需要设置服务器将资源与文件相关联。)
用于此目的的更自然的替代方法是 SSH 文件传输协议 (SFTP)。您可以在 Python 此处找到有关如何使用它的介绍:
http://www.pythonforbeginners.com/modules-in-python/python-secure-ftp-module
编辑
另一种方法是进行 OS 级文件系统联网,将远程目录挂载到本地文件系统中。然后,您可以从您的脚本中打开和写入文件,就好像它们是本地文件一样。
如果您正在使用 Linux,您可以在此处找到 NFS 的介绍:
有什么方法可以写入位于另一台服务器上的文件吗?
我可以访问具有大量资源(CPU、GPU、RAM 等)的强大服务器来执行复杂的 python 代码,但存储量非常有限(不到 1GB ).另一方面,我在另一台没有计算资源的服务器上有无限存储 space。
我需要一种方法来将 python 代码在一台服务器中的结果写入另一台服务器。类似于以下内容:
f = open('www.example.com/data.txt')
f.write(pythoncode.results)
我知道我可以简单地使用 liburl 读取远程文件:
import urllib3
http = urllib3.PoolManager()
r = http.request('GET', 'www.example.com/data.txt')
r.data
所以我正在寻找类似的东西来写作而不是阅读。
(我可以授予远程文件写权限,虽然我知道这通常不是一个好主意)。
提前致谢。
您需要使用某种协议通过网络进行通信并写入文件。您提供了一个使用 HTTP 协议 GET
来自服务器的文件(或资源)的示例。 (HTTP也提供PUT
和POST
方法在服务器上创建和更新资源,但需要设置服务器将资源与文件相关联。)
用于此目的的更自然的替代方法是 SSH 文件传输协议 (SFTP)。您可以在 Python 此处找到有关如何使用它的介绍:
http://www.pythonforbeginners.com/modules-in-python/python-secure-ftp-module
编辑
另一种方法是进行 OS 级文件系统联网,将远程目录挂载到本地文件系统中。然后,您可以从您的脚本中打开和写入文件,就好像它们是本地文件一样。
如果您正在使用 Linux,您可以在此处找到 NFS 的介绍: