首页 > 解决方案 > 如何从 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 从服务器访问文件?

标签: pythonserverfilepath

解决方案


您将需要一个 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()

推荐阅读