在python中写入远程服务器上的文件

时间:2018-02-21 22:38:04

标签: python-3.x file-permissions remote-server file-writing

有没有办法写入位于另一台服务器上的文件?

我可以访问具有大量资源(CPU,GPU,RAM等)的强大服务器来执行复杂的python代码,但存储量非常有限(小于1GB)。另一方面,我在没有计算资源的情况下在另一台服务器上拥有无限的存储空间。

我需要一种方法将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

所以我正在寻找类似于写作而不是阅读的东西。

(我可以给远程文件写入权限,虽然我知道这通常不是一个好主意。)

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您需要使用某种协议通过网络进行通信并编写文件。您已经提供了一个使用HTTP协议从服务器GET文件(或资源)的示例。 (HTTP还提供PUTPOST方法来创建和更新服务器上的资源,但需要设置服务器以将资源与文件相关联。)

为此目的存在的更自然的替代方案是SSH文件传输协议(SFTP)。你可以在这里找到关于如何在Python中使用它的介绍:

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

修改

另一种方法是执行操作系统级文件系统网络,以将远程目录安装到本地文件系统中。然后,您可以从脚本中打开并写入文件,就好像它们是本地文件一样。

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

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