【发布时间】:2015-10-30 09:14:57
【问题描述】:
用例:某个文件位于远程服务器上。我不想在我的程序中硬编码该文件的路径,而是希望程序提示我让我指定远程服务器上该目录的路径。这将有助于程序的可移植性。我能够在 pyCharm 4.5 专业版中连接到远程服务器。在 pyCharm 中使用 SFTP 连接到远程服务器。密码或密钥文件至少现在不是要关心的问题。
问题:函数 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!")
【问题讨论】:
-
这是在 Linux、Windows 还是其他平台上?
-
这是一个实际相关的问题 - stackoverflow.com/questions/14392432/…
-
@Paul 远程服务器在 CentOS 上,主机在 Windows 7 Professional 上
-
远程计算机的名称和文件名不足以打开文件。涉及更多的复杂性。例如,URL
http://some.host.com/path/to/file.html只允许访问远程 Web 服务器可访问的文件,而不是任意文件。 Linux 的open仅在本地打开文件,其中可以包括由系统管理员编辑的 NFS 或 SAMBA 远程文件系统mount,但同样不能在任意系统上打开任意文件。open()不打开 URL、FTP 站点、SCP 或其他访问远程文件的方式。 -
@Paul,感谢您的回复。我想要的只是远程服务器提示文件位置。执行起来真的有那么难吗?任何预定义的包怎么样?或者您是否建议在程序中硬编码位于远程服务器上的文件的路径是唯一的解决方案?
标签: python shell remote-server