2014-01-30 2 views
1

실제로 작동하지 않는 것이 확실치 않은데, 파이썬이 목록에서 임의의 이름을 선택하기를 원합니다. 변수를 인쇄했기 때문에 작동합니다.목록에서 임의의 선택을 텍스트 파일에 쓸 수 없다

그런 다음 임의의 이름을 텍스트 파일에 저장하려고합니다. 파일이 있지만 비어 있습니다. 어떤 도움을 주시면 감사하겠습니다.

import random 

names = "Balo", "Bandugl", "Baroro", "Cag", "Charoth", "Duglinglabat", "Dulko", "Fangot" 

rand_name = random.choice(names) 


c1= open("character_one.txt", "w") 

c1.write(rand_name) 

c1.close 

왜 파이썬은 텍스트 파일에 임의 선택을 쓰지 않습니까?

답변

4

실제로는 c1.close을 끝에 부르지 않는 것이 좋습니다.

import random 

names = "Balo", "Bandugl", "Baroro", "Cag", "Charoth", "Duglinglabat", "Dulko", "Fangot" 

rand_name = random.choice(names) 

c1 = open("character_one.txt", "w") 

c1.write(rand_name) 

c1.close() 

이것은이 파일을 열 수 with-statement을 사용하는 것이 좋습니다 이유 : 이렇게

import random 

names = "Balo", "Bandugl", "Baroro", "Cag", "Charoth", "Duglinglabat", "Dulko", "Fangot" 

rand_name = random.choice(names) 

with open("character_one.txt", "w") as c1: 

    c1.write(rand_name) 

을이이 작업을 수행 한 후

당신은 ()를 추가해야 완료되면 파일을 닫습니다.

+0

감사합니다, 그것은 바보 같은 것 알고 있었다. 아마도 잠 잘 자야 만합니다. –

+1

['with'] (http://effbot.org/zone/python-with-statement.htm)를 사용하면 더 좋은 아이디어가됩니다. –

+0

@FredLarson - 네, 아마도 언급해야합니다. – iCodez

1

좋은 연습이 암시 적으로 close 방법을 포함으로, with을 사용하는 것입니다

with open('file.ext', 'w') as c1: 
    c1.write(rand_name) 
관련 문제