Je ne parviens pas à créer un répertoire, puis à ouvrir/créer/écrire dans un fichier du répertoire spécifié. La raison ne me semble pas claire. J'utilise os.mkdir () et
path=chap_name
print "Path : "+chap_path #For debugging purposes
if not os.path.exists(path):
os.mkdir(path)
temp_file=open(path+'/'+img_alt+'.jpg','w')
temp_file.write(buff)
temp_file.close()
print " ... Done"
Je reçois l'erreur
path=chap_name
print "Path : "+chap_path #For debugging purposes
temp_file=open(img_alt+'.jpg','w')
temp_file.write(buff)
temp_file.close()
print " ... Done"
Toujours avoir une erreur. Confus plus loin.
Mise à jour 2: Le problème semble être le img_alt, il contient un '/' dans certains cas, ce qui cause le problème.
J'ai donc besoin de gérer le "/" ... ". Y at-il de toute façon d'échapper au"/"ou la suppression est-elle la seule option?
import os
path = chap_name
if not os.path.exists(path):
os.makedirs(path)
filename = img_alt + '.jpg'
with open(os.path.join(path, filename), 'wb') as temp_file:
temp_file.write(buff)
Le point clé est d’utiliser os.makedirs
à la place de os.mkdir
. Il est récursif, c’est-à-dire qu’il génère tous les répertoires intermédiaires. Voir http://docs.python.org/library/os.html
Ouvrez le fichier en mode binaire car vous stockez des données binaires (jpeg).
En réponse à Edit 2, si img_alt contient parfois '/':
img_alt = os.path.basename(img_alt)
import os
os.mkdir('directory name') #### this command for creating directory
os.mknod('file name') #### this for creating files
os.system('touch filename') ###this is another method for creating file by using unix commands in os modules