【问题标题】:write to file on a remote server in python在python中写入远程服务器上的文件
【发布时间】:2018-02-21 22:38:03
【问题描述】:

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

我可以访问具有大量资源(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

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

(我可以授予远程文件写入权限,尽管我知道这通常不是一个好主意)。

提前谢谢你。

【问题讨论】:

  • @Mr.Zeus,我没有根访问权限(两台服务器)来安装任何东西。在第一台服务器(强大的一台)我只能执行python,第二台是共享主机。

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


【解决方案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/

【讨论】:

    猜你喜欢
    • 2014-11-29
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 2017-05-23
    相关资源
    最近更新 更多