如何在python中提示用户输入远程服务器的路径?

如何在python中提示用户输入远程服务器的路径?,python,shell,remote-server,Python,Shell,Remote Server,用例:远程服务器上有一个特定的文件。我希望程序提示我指定远程服务器上该目录的路径,而不是在我的程序中硬编码该文件的路径。这将有助于程序的可移植性。我能够连接到pyCharm 4.5专业版中的远程服务器。使用SFTP连接到pyCharm中的远程服务器。密码或密钥文件不是一个值得关注的问题,至少目前是这样 问题:函数raw_input()适用于本地解释器。但是,我使用什么方法来提示用户输入远程服务器中文件的目录路径呢 目前,我正在程序中硬编码文件路径,如 input_file="/home/ashi

用例:远程服务器上有一个特定的文件。我希望程序提示我指定远程服务器上该目录的路径,而不是在我的程序中硬编码该文件的路径。这将有助于程序的可移植性。我能够连接到pyCharm 4.5专业版中的远程服务器。使用SFTP连接到pyCharm中的远程服务器。密码或密钥文件不是一个值得关注的问题,至少目前是这样

问题:函数raw_input()适用于本地解释器。但是,我使用什么方法来提示用户输入远程服务器中文件的目录路径呢

目前,我正在程序中硬编码文件路径,如

input_file="/home/ashish/PyCharm_proj/raw_data/all_user_and_tweets_only_raw.csv"
我还尝试了以下代码,当在远程服务器上执行时,这些代码当然不起作用

import os,sys
user_input = raw_input("Enter the path of your file (use \: ")
assert os.path.exists(user_input), "I did not find the file at,  "+str(user_input)
input_file = open(user_input,'r+')
print("Hooray we found your file!")

类似的问题是,,,但我找不到任何满足我的用例的相关问题。有什么建议可以解决这个问题吗

要验证文件是否存在于远程主机/服务器上,您需要一种连接到该主机的方法。根据你的情况有很多不同的方法

  • 从上面的描述来看,您似乎拥有对 远程系统?在这种情况下,可以通过ssh进行连接 并执行远程命令
  • 如果通过HTTP在网站上发布远程主机文件,则可以 通过URL验证,但请注意,这可能不会反映远程主机 完整路径,因为它依赖于HTTP根
所以这取决于你的情况

如果使用paramiko,最简单的方法之一就是使用SFTP类。大概是这样的:

ssh_client = paramiko.SSHClient()
ssh_client.connect(host, port, user, password)
sftp = ssh_client.open_sftp()
file_stat = sftp.stat(path)           # can use stat
try:
    sftp_obj1 = sftp.file(path)   # or use file
    sftp_obj2 = sftp.open(path)   # or use open
except:
    print "Error! File not found!"

要验证文件是否存在于远程主机/服务器上,您需要一种连接到该主机的方法。根据你的情况有很多不同的方法

  • 从上面的描述来看,您似乎拥有对 远程系统?在这种情况下,可以通过ssh进行连接 并执行远程命令
  • 如果通过HTTP在网站上发布远程主机文件,则可以 通过URL验证,但请注意,这可能不会反映远程主机 完整路径,因为它依赖于HTTP根
所以这取决于你的情况

如果使用paramiko,最简单的方法之一就是使用SFTP类。大概是这样的:

ssh_client = paramiko.SSHClient()
ssh_client.connect(host, port, user, password)
sftp = ssh_client.open_sftp()
file_stat = sftp.stat(path)           # can use stat
try:
    sftp_obj1 = sftp.file(path)   # or use file
    sftp_obj2 = sftp.open(path)   # or use open
except:
    print "Error! File not found!"

要验证文件是否存在于远程主机/服务器上,您需要一种连接到该主机的方法。根据你的情况有很多不同的方法

  • 从上面的描述来看,您似乎拥有对 远程系统?在这种情况下,可以通过ssh进行连接 并执行远程命令
  • 如果通过HTTP在网站上发布远程主机文件,则可以 通过URL验证,但请注意,这可能不会反映远程主机 完整路径,因为它依赖于HTTP根
所以这取决于你的情况

如果使用paramiko,最简单的方法之一就是使用SFTP类。大概是这样的:

ssh_client = paramiko.SSHClient()
ssh_client.connect(host, port, user, password)
sftp = ssh_client.open_sftp()
file_stat = sftp.stat(path)           # can use stat
try:
    sftp_obj1 = sftp.file(path)   # or use file
    sftp_obj2 = sftp.open(path)   # or use open
except:
    print "Error! File not found!"

要验证文件是否存在于远程主机/服务器上,您需要一种连接到该主机的方法。根据你的情况有很多不同的方法

  • 从上面的描述来看,您似乎拥有对 远程系统?在这种情况下,可以通过ssh进行连接 并执行远程命令
  • 如果通过HTTP在网站上发布远程主机文件,则可以 通过URL验证,但请注意,这可能不会反映远程主机 完整路径,因为它依赖于HTTP根
所以这取决于你的情况

如果使用paramiko,最简单的方法之一就是使用SFTP类。大概是这样的:

ssh_client = paramiko.SSHClient()
ssh_client.connect(host, port, user, password)
sftp = ssh_client.open_sftp()
file_stat = sftp.stat(path)           # can use stat
try:
    sftp_obj1 = sftp.file(path)   # or use file
    sftp_obj2 = sftp.open(path)   # or use open
except:
    print "Error! File not found!"

所以,这个问题一开始有点不清楚。OP最终在寻找一种方法,为他的脚本提供关于远程服务器上文件位置(已知)的输入

OP尝试了
raw_输入
,但出现了未指定的错误


评论中的进一步讨论揭示了最初的方法对于这个用例是正确的。错误出现在一段不相关的代码中,OP对输入字符串和文件对象使用了相同的标识符,导致试图
打开文件对象。

因此,问题一开始有点不清楚。OP最终在寻找一种方法,为他的脚本提供关于远程服务器上文件位置(已知)的输入

OP尝试了
raw_输入
,但出现了未指定的错误


评论中的进一步讨论揭示了最初的方法对于这个用例是正确的。错误出现在一段不相关的代码中,OP对输入字符串和文件对象使用了相同的标识符,导致试图
打开文件对象。

因此,问题一开始有点不清楚。OP最终在寻找一种方法,为他的脚本提供关于远程服务器上文件位置(已知)的输入

OP尝试了
raw_输入
,但出现了未指定的错误


评论中的进一步讨论揭示了最初的方法对于这个用例是正确的。错误出现在一段不相关的代码中,OP对输入字符串和文件对象使用了相同的标识符,导致试图
打开文件对象。

因此,问题一开始有点不清楚。OP最终在寻找一种方法,为他的脚本提供关于远程服务器上文件位置(已知)的输入

OP尝试了
raw_输入
,但出现了未指定的错误


评论中的进一步讨论揭示了最初的方法对于这个用例是正确的。错误出现在一段不相关的代码中,OP对输入字符串和文件对象使用了相同的标识符,导致试图打开文件对象。

在Linux、Windows和,还是别的?这里有一个实际相关的问题-@Paul远程服务器在CentOS上,主机在Windows 7上,远程计算机的名称和文件名不足以打开该文件。还有更多