下面是我尝试使用的一段代码,用于将目录路径作为"原始输入"来自用户。从用户输入后我收到以下错误:
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+")
答案 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)
我弄清楚了......我忘了在目录路径上的文件名末尾添加文件扩展名;我没有注意到我只是通过复制/粘贴我的文件名来切断它....程序现在正常工作......谢谢大家!