将目录路径作为用户输入的正确方法是什么?

时间:2014-04-08 13:54:14

标签: python raw-input

下面是我尝试使用的一段代码,用于将目录路径作为"原始输入"来自用户。从用户输入后我收到以下错误:

Traceback (most recent call last):
  File "C:\Users\larece.johnson\Desktop\Python Programs\Hello World 2", line 14, in <module>
    f = open(str,"r+")                                     #I open the text file here which the user gave me
IOError: [Errno 2] No such file or directory: 'C:/Users/larece.johnson/Desktop/Python Programs/BostonLog.log.2014-04-01'

忽略我在下面所做的,是否有一种特殊方式我应该从用户那里获取路径以便Python接受它?

例如,我正在寻找的目录和文件是

C:/Users/larece.johnson/Desktop/Python Programs/BostonLog.log.2014-04-01
import re     #this library is used so that I can use the "search" function
import os     #this is needed for using directory paths and manipulating them 

str =""       #initializing string variable for raw data input

#print os.getcwd()
#f = open("C:/Users/larece.johnson/Desktop/BostonLog.log.2014-04-02.log","r+")

str = raw_input("Enter the name of your text file - please use / backslash when typing in directory path: ");  #User will enter the name of text file for me

f = open(str,"r+")

3 个答案:

答案 0 :(得分:10)

我认为你应该尝试类似的事情:

import sys
import os

user_input = raw_input("Enter the path of your file: ")

assert os.path.exists(user_input), "I did not find the file at, "+str(user_input)
f = open(user_input,'r+')
print("Hooray we found your file!")
#stuff you do with the file goes here
f.close()

答案 1 :(得分:5)

您似乎想要检查目录是否存在。

如果有,请参阅os.path.isdir

os.path.isdir(path)
    Return True if path is an existing directory.
    This follows symbolic links, so both islink()
    and isdir() can be true for the same path.

你可以这样做:

s = raw_input();
if os.path.isdir(s):
    f = open(s, "r+")
else:
    print "Directory not exists."

答案 2 :(得分:2)

我弄清楚了......我忘了在目录路径上的文件名末尾添加文件扩展名;我没有注意到我只是通过复制/粘贴我的文件名来切断它....程序现在正常工作......谢谢大家!