2017-04-14 115 views
2

我用来通过使用putty连接到本地服务器。但现在我需要通过使用脚本python创建一个文件,这个文件的大小很大,所以我必须把它放在本地服务器上;Python:如何在本地服务器中创建文件?

通过使用puty,我必须entre我的主机地址,密码,名称和端口。

我该怎么做?

这是我的脚本:

import numpy as np 
import glob 
import os 
P_Result_File_Path ="Path_To_the_Result_File" 
Folder_path =r'Path_To_my_numpy_files' 
os.chdir(Folder_path) 
npfiles= glob.glob("*.npy") 
npfiles.sort(key=os.path.getmtime) 
print (npfiles) 
loadedFiles = [np.load(npf) for npf in npfiles] 
PArray=np.concatenate(loadedFiles, axis=0) 
np.save(Power_Result_File_Path, PArray) 

P_Result_File_Path文件有一个规模庞大,所以我需要将其保存在本地服务器,问题在这种情况下Path_To_the_Result_File= /home/user/result.npy,所以这条路是未知的,我需要连接到此服务器以创建并放置结果文件。

+0

可以ssh到服务器并运行你的Python如果你不想将文件从一台机器复制到另一台机器,那么脚本就在那里。有什么具体的你在这里寻找? –

+0

@SudheeshSinganamalla谢谢你的回答,请参阅编辑的问题? – Guillaume

回答

0

由于问题的变化,答案被编辑。

如果你不想在P_Result_File_Path存储在本地计算机上即使是暂时的:

我会建议你到python脚本文件先复制到服务器上,并有执行它(按规定@Sudheesh Singanamalla)。为了复制你的Python脚本,请看看SCP - http://www.hypexr.org/linux_scp_help.php):

复制从本地主机到远程主机目录“栏”

$ scp -r foo [email protected]:/some/remote/directory/bar 

或副主席的目录“富”相反,您可以从本地机器上将脚本复制到服务器上。 然后你就可以执行Python脚本,你P_Result_File_Path存储在服务器直接

但是,如果你想在你的本地机器上创建P_Result_File_Path第一,然后将其发送到服务器:

执行您本地机器上的python脚本,然后将结果文件scp传送到服务器。

希望,这将有助于

更新(因为生成的文件应该被存储到本地机器上的Python脚本执行期间服务器) - 作为一个想法,你可以使用FTP此:

import ftplib 
session = ftplib.FTP('<your_server_address>','USERNAME','PASSWORD') 
session.storbinary('STOR <file_to_send>', PArray) 

如果你仍然会得到错误[Errno 11001] getaddrinfo失败,这很容易谷歌为什么发生这种错误

+0

谢谢你的回答,它给了我这个错误:对于_socket.getaddrinfo(主机,端口,家庭,类型,原型,标志)中的res: gaierror:[Errno 11001] getaddrinfo失败 – Guillaume

+0

如果OP已连接使用SSH到服务器,使用'scp'或者其他方法发送文件而不是调用另一个python脚本只是通过FTP发送文件会更简单吗? – Simon

+0

@Simon,我已经使用SSH连接了,但我不想在我的桌面上创建该文件,然后将其移至本地服务器,我需要创建并直接在服务器中保存结果文件。 – Guillaume

1

如果您的远程服务器能够连接到本地计算机(即您所在的计算机),那么你可以试试以下内容:

  1. SSH到服务器
  2. 使用scp将文件从本地计算机复制到服务器:
    • scp [email protected]_ip:/path/to/local/python/script.py /server/path/for/saved/file.py
    • SCP采用的语法如下:scp <source> <destination>。在这种情况下,源是本地计算机,目标是您的服务器,但由于您已经登录到服务器,因此您需要提供本地计算机的登录信息。
  3. 一旦python脚本具有已被复制到您的服务器,只需在您通过SSH连接的情况下使用python /server/path/for/saved/file.py运行。只要确保你的Python脚本路径是
    • 所以你不需要将其传送

如果本应直接在服务器上生成的结果文件服务器上的可行路径你的远程服务器不能访问本地计算机,然后有一些事情你可以做的就是python脚本到你的服务器:

  • 上传文件的地方(如Dropbox的),并获得一个链接。 SSH到服务器和wget http://link-to-file.py拉python文件到您的服务器。然后像上面,直接使用服务器或... Python的
  • 在本地机器上,使用一些终端使用scp传输运行它,但这次是在另一个方向:
    • scp /path/to/local/python/script.py [email protected]_ip:/server/path/for/saved/file.py
    • 方注意:SCP将创建自己的SSH连接,所以你会希望运行第一之前手动ssh到服务器来运行Python文件
+0

我复制了脚本到我的本地服务器,但问题是我必须改变这些路径:P_Result_File_Path =“Path_To_the_Result_File”Folder_path = r'Path_To_my_numpy_files',所以如果我保留我的实际路径的错误是FileNotFoundError:[Errno 2]否这样的文件或目录:这意味着我必须移动本地服务器中的文件的文件夹,但对于我来说,我需要保存包含我的文件在我的本地计算机中的forlder(事实上,我拥有大量的文件),所以真的我不知道该怎么办? – Guillaume

+0

我需要把所有生成的文件放在我的本地服务器上 – Guillaume

+0

在这种情况下,你必须在你的python文件中将路径设置为本地机器上的路径(即'P_Result_File_Path'必须是本地路径),然后运行脚本在本地获取计算机上的结果文件。然后以上述相同的方式将* results *文件scp到服务器(即不是scp python脚本,scp结果) – Simon

相关问题