2013-05-30 2 views
0

나는 같은 것을 할 필요가 있지만, 파이썬 대신 배쉬에서 : 변수가 연결된되지 않으며,변수를 사용하여 파이썬에서 wget을 다운로드하는 방법은 무엇입니까?

import urllib, os 
i = 0 
while i <= 3: 
    os.system('wget http://somewebsite.net/shared/fshared_',i,'.7z') 
    i = i + 1 

그러나이 작동하지 않습니다

i=1 
while [ $i <= 10 ] ; do 
    wget http://somewebsite.net/shared/fshared_$i.7z 
    $i = $i + 1 
done 

파이썬에서 나는 다음과 같이 시도 올바르게 (또는 비슷한).
Bash 코드를 사용하면 Bash에서 다음과 같은 간단한 작업을 수행 할 수 없습니다. i = i + 1

아무도 도와 줄 수 없습니까?

해결! :)

이제는 Bash와 Python이 둘 다 있습니다. 실제로 Python에서는 여러 가지 변종이 있습니다. 모든 ... 덕분에

고마워요^-^해결 나는이 항목을 표시하려면 어떻게

?

다시 한번 감사드립니다.

+0

답 중 하나가 문제를 해결하면이를 수락합니다. 둘 이상의 정답이있는 경우 가장 적합한 것으로 답하십시오. 파이썬 v2를 사용 –

답변

2

os.system('wget http://somewebsite.net/shared/fshared_%s.7z'%i) 

사용 %s 대신 ,

+0

: 형식 오류 : 연결할 수 없습니다 'STR'과 'INT'는 파이썬 V3를 사용 객체 : 형식 오류가 : 암시 를 str에하는 'INT'개체를 변환 할 수 없습니다 그리고 난 이미 downlaod 줄 앞에 넣어 : STR을 (i) – user2437965

+0

당신은 '+'와 ','물건들을 제거하는 것을 잊지 않습니다 – maazza

+0

.. 고쳐주세요 .. – karthikr

1

배쉬에서 당신은 증가를보십시오. 그래서 스크립트가 될 것이다 4.를 인쇄해야처럼 지속

i=3 
((i++)) 
echo $i 

:

i=1 
while [ $i -le 10 ] ; do 
    wget http://somewebsite.net/shared/fshared_$i.7z 
    ((i++)) 
done 

편집 : 당신은 같은 것을 할 필요가 작동하지 않습니다 <= 이후 -le 대신 <=를 사용하는 고정 코드를 bash에서.

+0

Bash와 함께 멋지 네요!. – user2437965

+0

왜 이것을 다운 그레이드 했습니까? –

1

, 당신은 연결하는 +를 사용할 필요가 당신은 연결과 함께이 문제를 해결하려면이

import urllib, os 
i = 0 
while i <= 3: 
    os.system('wget http://somewebsite.net/shared/fshared_%s.7z' % i) 
    i = i + 1 
+0

urllib (나는 bash와 python을 섞어 놓는 것을 좋아하지 않는다)로 시도했지만 작동하지 않았다. 그러나 코드로 완벽하게 작동한다. – user2437965

+0

환영합니다. –

0

사용하여 각 파일에 대해 쉘에게 호출하지 않고 파이썬을 사용할 수 있습니다 , 대신 ,을 사용하여 두 문자열을 연결할 때 공백 문자로 구분하면 +을 사용할 때 동일하지 않기 때문에 문자열을 "실제로"연결합니다.

예.:

print('Hello' + 'World' + '!') 
print('Hello', 'Stack', 'Overflow!') 

출력 :

HelloWorld! 
Hello Stack Overflow! 

귀하의 코드는 이제 , 대신 +를 사용하여 다음과 같이 보일 것이다 : 당신은 또한 당신에게 물어 파이썬을 지정할 수 있습니다

#... 
os.system('wget http://somewebsite.net/shared/fshared_' + i + '.7z') 
#...             ^^

Code pasted on Ideone.com

+0

완벽한 작품! :) 감사! – user2437965

0

을 시도 urllib

import urllib, os 

for i in range(4): 
    filename = 'fshared_{}.7z'.format(i) 
    urllib.urlretrieve('http://somewebsite.net/shared/'+filename, filename) 
0

wget에 전달할 URL

import os 
path = raw_input("enter the url:") 
os.system('wget -r -nd -l1 --no-parent -A mp3 %s'%path) 

은 'mp3'대신 다운로드 할 형식을 사용하십시오.

관련 문제