在 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也提供PUTPOST方法在服务器上创建和更新资源,但需要设置服务器将资源与文件相关联。)

用于此目的的更自然的替代方法是 SSH 文件传输协议 (SFTP)。您可以在 Python 此处找到有关如何使用它的介绍:

http://www.pythonforbeginners.com/modules-in-python/python-secure-ftp-module

编辑

另一种方法是进行 OS 级文件系统联网,将远程目录挂载到本地文件系统中。然后,您可以从您的脚本中打开和写入文件,就好像它们是本地文件一样。

如果您正在使用 Linux,您可以在此处找到 NFS 的介绍:

https://www.tecmint.com/how-to-setup-nfs-server-in-linux/