2012-11-14 32 views
12

Làm thế nào để bạn nối giá trị uuid.uuid4() với một chữ khi tạo tệp? Dưới đây là không đúng nhưng nên minh họa những gì tôi đang cố gắng làm ...Sử dụng uuid.uuid4() để tạo tệp mới

fo = open(uuid.uuid4() + ".txt", "wb") 

Trả lời

30

Bạn cần phải chuyển đổi uuid đến một str:

>>> import uuid 
>>> str(uuid.uuid4()) + ".txt" 
'13eb9327-f40e-4ef1-8020-1c36af1b4b70.txt' 
3

Phiên bản này không bao gồm - trong chuỗi

fo = open(uuid.uuid4().hex + ".txt", "wb") 

Nó thường là một ý tưởng tốt để mở tệp bằng một người quản lý bối cảnh

with open(uuid.uuid4().hex + ".txt", "wb") as fo: 
    # do stuff with fo 
    # fo will be closed automatically 

Dưới đây là một ví dụ trong một vòng lặp

for item in data: 
    with open(uuid.uuid4().hex + ".txt", "wb") as fo: 
     fo.write(item) 
+0

tôi đang thực hiện một vòng lặp mà tôi tạo ra một tập tin mới (sử dụng lệnh mở sau đó tôi viết thư cho nó sau đó tôi đóng nó lại và lặp lại quá trình đó. Trình quản lý ngữ cảnh có phù hợp trong trường hợp này không? – c12

+1

@ c12, chắc chắn, chỉ cần đặt bên trong vòng lặp –

Các vấn đề liên quan