web-gelistirme-sc.com

Python ile dosya ve dizin oluşturma

Dizin oluşturma ve daha sonra belirtilen dizindeki bir dosyaya açma/oluşturma/yazma konusunda sorun yaşıyorum. Sebep bana belirsiz geliyor. Ben os.mkdir () kullanıyorum ve 

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"

Hatayı alıyorum 

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"

Hala bir hata alıyorum. Daha fazla karıştı.


Güncelleme 2: Sorun img_alt gibi görünüyor, bazı durumlarda soruna yol açan bir '/' işareti içeriyor.

Öyleyse '/'..__ ile başa çıkmam gerekiyor.'/'Kaçmak için yine de var mı, yoksa tek seçenek silme mi?

17
ffledgling
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)

Anahtar nokta, os.makedirs yerine os.mkdir kullanmaktır. Özyinelemelidir, yani tüm ara dizinleri oluşturur. Bkz. http://docs.python.org/library/os.html

İkili (jpeg) veriyi depolarken dosyayı ikili modda açın.

Edit 2 'e cevaben, eğer img_alt bazen içinde'/'varsa:

img_alt = os.path.basename(img_alt)
56
Rob Cowie
    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 
0
Surya