2016-06-30 2 views
0

srt 자막 파일을 다운로드하려면이 코드를 작성했으나 작동하지 않습니다. 이 문제를 검토하고 코드를 도와주세요. 나는 내가하고있는 실수가 무엇인지 찾아야한다. 감사.파일 다운로드에 관해서는

from urllib import request 

srt_url = "https://subscene.com/subtitle/download?mac=LkM2jew_9BdbDSxdwrqLkJl7hDpIL_HnD-s4XbfdB9eqPHsbv3iDkjFTSuKH0Ee14R-e2TL8NQukWl82yNuykti8b_36IoaAuUgkWzk0WuQ3OyFyx04g_vHI_rjnb2290" 

def download_srt_file(srt_url): 
    response = request.urlopen(srt_url) 
    srt = response.read() 
    srt_str = str(srt) 
    lines = srt_str.split('\\n') 
    dest_url = r'srtfile.srt' 
    fx = open('dest_url' , 'w') 
    for line in lines: 
     fx.write(line) 
    fx.close() 

    download_srt_file(srt_url) 

답변

1

여러 가지가 잘못되었거나 개선 될 수 있습니다.

  • 함수에 return 문이 누락되었습니다.
  • 실제로 함수를 호출하지 않도록 함수 내에서 함수를 호출하고 있습니다. 당신은 그것으로 결코 들어가지 않는다.
  • dest_url는 변수가 너무 fx = open('dest_url', 'w') 오류 (해당 파일)
  • 가 폐쇄을 처리하고 그냥 with 문을 사용하여 작성하는 파일을 플러시 방지하려면를 반환하고, 문자열이 아닌.
  • split('//n')도 잘못되었습니다. 그렇게 슬래시를 벗어났습니다. 줄을 분할하여 split('\n')
  • 마지막으로 srt을 문자열로 변환 할 필요가 없습니다. 그것은 이미있다.

아래 코드는 위의 코드를 수정하여 잘 작동하는 버전입니다.

from urllib import request 

def download_srt_file(srt_url): 
    response = request.urlopen(srt_url) 
    srt = response.read() 
    lines = srt.split('\n') 
    dest_url = 'srtfile.srt' 
    with open(dest_url, 'w') as fx: 
     for line in lines: 
      fx.write(line) 
    return 

srt_url = "https://subscene.com/subtitle/download?mac=LkM2jew_9BdbDSxdwrqLkJl7hDpIL_HnD-s4XbfdB9eqPHsbv3iDkjFTSuKH0Ee14R-e2TL8NQukWl82yNuykti8b_36IoaAuUgkWzk0WuQ3OyFyx04g_vHI_rjnb2290" 
download_srt_file(srt_url) 

효과가 있는지 알려주세요.

최종주의는 작성중인 파일의 대상 디렉토리를 설정하지 않는다는 것입니다. 정말하고 싶니?

+0

아니요 오류가 귀하의 제안을 버리지 않습니다. –

+0

네,하지만 이건 codewars 아니에요, 그래서 그것을 추측 할 필요가 없습니다. 오류는 제발 말해줘. –

+0

여기에 오류를 붙여 넣을 수 없습니다. 너무 큽니다. 게다가 나는 그 중 어느 것도 이해하지 못한다. 죄송합니다. 먼저 코드를 직접 실행하면 좋을 것입니다. 그런 식으로 오류가 무엇인지 이해할 수 있습니다! –