ディレクトリを作成してから、指定したディレクトリ内のファイルを開いたり、作成したり、ファイルに書き込んだりすることができません。その理由は私には不明のようです。私はos.mkdir()を使用しています
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"
エラーが出る
OSError:[Errno 2]そのようなファイルまたはディレクトリはありません: 'Some Path Name'
パスの形式は「エスケープされていないスペースのあるフォルダー名」です
ここで何が間違っていますか?
更新:ディレクトリを作成せずにコードを実行しようとしました
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"
それでもエラーが発生します。さらに混乱。
更新2:問題はimg_altのようで、場合によっては '/'が含まれており、これが問題の原因となっています。
したがって、「/」を処理する必要があります。とにかく「/」をエスケープする方法はありますか、それとも削除が唯一のオプションですか?
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)
重要な点は、os.makedirs
の代わりにos.mkdir
を使用することです。再帰的です。つまり、すべての中間ディレクトリを生成します。 http://docs.python.org/library/os.html を参照してください
バイナリ(jpeg)データを保存しているときに、バイナリモードでファイルを開きます。
Edit 2に対応して、img_altに「/」が含まれている場合があります:
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