2017-10-18 5 views
1

내 작품에 wget 라이브러리를 설치할 수 없기 때문에 txt 파일에 나열된 URL을 사용하여 파일을 다운로드 할 수있는 해결 방법이 필요합니다. urls.txt라는 txt 파일은 다운로드해야하는 파일로 연결되는 링크가 약 1,000 개씩 들어 있습니다. 지금까지 나는 이와 같은 것을 가지고 있지만 불행히도 스크립트가 실행되고 있지만 파일을 다운로드하지는 않습니다.wget을 사용하지 않고 txt 파일에 나열된 URL에서 파일 다운로드

import urllib.request 

with open("urls.txt", "r") as file: 
    linkList = file.readlines() 
for link in linkList: 
    urllib.request.urlretrieve(link) 

답변

1

번째 인자는, 존재하는 경우, (존재하는 경우, 위치는 생성 된 이름으로 임시 파일 것)에 복사 할 파일의 위치를 ​​지정하는 docs 가입일

.

당신과 같이,에 파일의 내용을 다운로드 할 파일 경로를 참조 두 번째 인수를 지정해야합니다 :

... 
for link in linkList: 
    urllib.request.urlretrieve(link, link.split('/')[-1]) 

약자로

, 당신이 가진 임시 파일로 다운로드하는 생성 된 이름. 나는 그 이름을 어떻게 가져올 지 확신하지 못하기 때문에 파일 경로를 직접 지정하는 것이 가장 좋습니다. 너무 좋아

+0

내 URL adress은이 /DocumentXML2XLSDownload.vm?firsttime=true&repengback=true&documentId=XXXXXX&xslFileName=rher2xml.xsl&outputFileName=XXXX_2017_06_25_4.xls 같은이며 나는 모든 파일이 마지막 부분 "XXXX_2017_06_25_4.xls"의 이름을 따서 명명하고 배치 할 스크립트의 디렉토리에. 어떻게해야합니까? 저는 파이썬에 완전히 익숙하지 않고 어떤 구가 무엇을 의미하는지 알아 내려고합니다. – Seidhe

+0

그건 별개의 질문입니다. URL 쿼리 문자열을 구문 분석하는 방법을 알고 싶습니다. 구글은 그걸로 주위에, 그리고 운이 없다면, 새로운 질문을 게시하고 나를 찌를, 나는 또 다른 대답을 작성합니다. –

+0

@Seidhe이 파일 이름을 가져 오는 빠르고 빠지기 쉬운 방법은 @AdamBarnes가 사용했던 것과 비슷할 것입니다 :'linkSplit ('outputFileName =') [- 1]'링크를 두 부분으로 나눌 것입니다. "outputFileName = "그래서 마지막 부분 ('[-1]')이 당신의 파일 이름이 될 것입니다. 덜 해킹 된 방법은 참으로 언급 된 것처럼 URL 파싱을 파헤칠 것입니다. – jadsq