2009-08-13 45 views
105

Tôi muốn đưa thông tin đầu ra của chương trình vào một thư mục. nếu thư mục đã cho không tồn tại, thì chương trình sẽ tạo một thư mục mới với tên thư mục như được đưa ra trong chương trình. Điều này có thể không? Nếu có, xin vui lòng cho tôi biết làm thế nào.Cách tạo thư mục mới?

Giả sử tôi đã cho đường dẫn thư mục như thư mục "C:\Program Files\alex"alex không tồn tại thì chương trình sẽ tạo thư mục alex và nên đặt thông tin đầu ra vào thư mục alex.

+7

Khi bạn tìm trong mô-đun 'os', bạn đã tìm thấy gì? Bất cứ điều gì hữu ích? Bạn đã thử mã nào? Có gì không? –

Trả lời

192

Bạn có thể tạo một thư mục với os.makedirs()
và sử dụng os.path.exists() để xem nếu nó đã tồn tại:

newpath = r'C:\Program Files\arbitrary' 
if not os.path.exists(newpath): 
    os.makedirs(newpath) 

Nếu bạn đang cố gắng để làm một trình cài đặt: Windows Installer làm rất nhiều công việc cho bạn.

+8

Điều này sẽ không thành công vì bạn không bị lặp lại hai lần trong cuộc gọi tới os.makedirs. –

+2

Nó giết chết tôi: newpath = r'C: \ Program Files \ alex '; nếu không phải là os.path.exists (newpath): os.makedirs (newpath) – hughdbrown

+0

tên đường dẫn nói chung phân biệt chữ hoa chữ thường. – SilentGhost

27

Bạn đã thử dùng os.mkdir chưa?

Bạn cũng có thể thử đoạn mã nhỏ này:

mypath = ... 
if not os.path.isdir(mypath): 
    os.makedirs(mypath) 

makedirs tạo ra nhiều cấp độ thư mục, nếu cần thiết.

27

Bạn có thể muốn os.makedirs vì nó cũng sẽ tạo các thư mục trung gian, nếu cần.

import os 

#dir is not keyword 
def makemydir(whatever): 
    try: 
    os.makedirs(whatever) 
    except OSError: 
    pass 
    # let exception propagate if we just can't 
    # cd into the specified directory 
    os.chdir(whatever) 
Các vấn đề liên quan