python - 如何从 Windows 读取 Linux 服务器上的文件?
问题描述
我正在运行 3D 模拟并将结果存储在外部 Linux 服务器上。目前,要读取文件,我复制它们并从我的 Win 计算机本地读取它们。如果我使用下面的路径访问文件(它们位于下面指定的文件夹中),它工作正常:
STAG_DIR = '\\Users\\UserName\\Desktop\\sun-simulations\\sun'
但是,我想直接从服务器访问文件。我尝试了以下路径到我存储模拟结果的文件夹:
STAG_DIR = '\\\\my_hostname\\short\\y89\\ms5128\\msun\\240x240x240\\By0=0.100\\2018_Aug_07'
我得到错误:
FileNotFoundError:[Errno 2] 没有这样的文件或目录:'\\my_hostname\short\y89\ms5128\msun\240x240x240\By0=0.100\2018_Aug_07\msun01_00001.dat'
我确保该文件'sun01_00001.dat'
位于该文件夹中。
一个可能的错误来源可能是我需要先登录到服务器才能访问文件。
有没有办法通过 Python 从服务器访问文件?
解决方案
您将需要一个 SFTP 客户端来读取文件。您不能直接用主机名替换路径。您应该尝试使用 paramiko 之类的方法来准备文件。
快速示例:
client= ssh_client.open_sftp()
file = sftp_client.open('your_filename')
try:
for line in file:
#Do whatever you want for each line in the file
finally:
file.close()
推荐阅读
- c# - 使用 C# for webhooks 以 JSON 形式获取内容类型为 x-www-form-urlencoded 的请求消息
- flurry - “com.flurry.OTHER”是什么意思
- scala - `<:<`的隐式解析链是什么
- kubernetes - 当吊舱死亡时,秘密 Hashicorp Vault 会发生什么
- grails - groovy grails 中的内部依赖注入
- android - IntelliJ IDEA Ultimate(在 Ubuntu 上)访问 SQLite 数据库错误:权限被拒绝(也在模拟器和设备上)
- c# - 如何在 asp.net core 2.1 中模拟 HttpContext 会话
- c# - Rotativa.AspNetCore 在 smarterasp 中部署后不工作
- mfc - MFC 中的停靠控制栏
- unity3d - 如何在 Travis Ci 中使用 Unity 项目?