Ci-dessous, un extrait de code que j'essaie d'utiliser pour prendre un chemin de répertoire comme "entrée brute" de l'utilisateur. Je reçois l'erreur suivante après que l'entrée a été prise par l'utilisateur:
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'
En ignorant ce que j'ai fait ci-dessous, y a-t-il une façon particulière dont je suis censé prendre le chemin de l'utilisateur afin que Python l'accepte?
Par exemple, le répertoire et le fichier que je recherche sont
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+")
Je pense que vous devriez essayer quelque chose comme:
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()
Il semble que vous souhaitiez vérifier si le répertoire existe.
Si c'est le cas, voir 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.
Vous pouvez faire comme ça:
s = raw_input();
if os.path.isdir(s):
f = open(s, "r+")
else:
print "Directory not exists."
Je l'ai compris ... J'ai oublié d'ajouter l'extension de fichier à la fin du nom de fichier sur mon chemin de répertoire; Je n'ai pas remarqué que je le coupais en copiant/collant simplement le nom de mon fichier .... le programme fonctionne maintenant ... merci à tous!