我在创建目录,然后打开/创建/写入指定目录中的文件时遇到问题。原因似乎不清楚。我正在使用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] No such file or directory: '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,在某些情况下它包含一个'/',这会造成麻烦。
所以我需要处理'/'。 反正有没有逃过'/'或删除唯一的选择?
答案 0 :(得分:60)
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)数据时以二进制模式打开文件。
在回复编辑2 时,如果img_alt有时会包含'/':
img_alt = os.path.basename(img_alt)
答案 1 :(得分:0)
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