2017-11-02 15 views
0

나는 Progress Bar가있는 URL에서 Python3로 다운로드하기를 원한다. atm을 가지고있는 코드는 한 줄에 머 무르지 않고 대신 수백 줄의 새로운 lines.Is를 인쇄하여 모양이 깔끔하게 보이고 디자인이 바뀌도록 제한합니다.커맨드 라인에서 스팸으로부터 tqdm을 막을 수있는 방법이 있습니까?

class TqdmUpTo(tqdm): 
"""Provides `update_to(n)` which uses `tqdm.update(delta_n)`.""" 
def update_to(self, b=1, bsize=10, tsize=None): 
    """ 
    b : int, optional 
     Number of blocks transferred so far [default: 1]. 
    bsize : int, optional 
     Size of each block (in tqdm units) [default: 1]. 
    tsize : int, optional 
     Total size (in tqdm units). If [default: None] remains unchanged. 
    """ 
    if tsize is not None: 
     self.total = tsize 
    self.update(b * bsize - self.n) # will also set self.n = b * bsize 

def downloader(urllink, filename): 
    with TqdmUpTo(unit='B', unit_scale=True, miniters=1, 
     desc=urllink.split('/')[-1]) as t: # all optional kwargs 
     urllib.request.urlretrieve(urllink, filename=filename, reporthook=t.update_to, data=None) 

이와 비슷한 것이 좋습니다.

100 % | ████████████████████████████▉ | 8,014분의 8,014 [1시 37분 < 0시, 82.29files/s의] (출처 : https://github.com/tqdm/tqdm)

희망 누군가이 가능하다면 ... 사전에

감사 나를 도울 수 :)

+0

Google에서 처음 명중 : https://pypi.python.org/pypi/progressbar2 기본적으로 '\ r'을 사용하여 줄의 처음으로 돌아가서 다시 인쇄합니다. – Jeronimo

+0

죄송합니다.하지만 도움이되지 않습니다. -.- 이미 읽었지만 Loop 대신 Url을 사용하는 방법에 대해서는 전혀 모른다. (필자는 Python에 익숙하지 않다.) –

답변

0

tqdm\r을 사용하면 반복 할 때마다 행을 다시 쓸 수 있지만, 다른 콘솔 환경에서는 \r을 다르게 해석합니다. 그냥 내가 여기있어 무엇과 실험의 약간의

, 프로젝트의 README (강조 광산)에서

# IDLE (both shell and from a file) 
>>> print("11111\r222") 
11111 

222 

# macOS default terminal 
python3 
>>> print("11111\r222") 
22211 

# macOS default terminal 
ipython 
In [1]: print("11111\r222") 
22211 

# Pycharm Python Console (ipython) 
In [1]: print("11111\r222") 
11111 
222 

# Pycharm from inside a file 
print("11111\r222") # Outputs just `222` 

(종속성을하지 필요하지 않습니다

tqdm 심지어 curses!), 파이썬과 캐리지 리턴 \ r과 줄 바꿈을 지원하는 환경 \ n 제어 문자. "일반적인 문제"아래

과 : 일반적으로

콘솔은 : 캐리지 리턴 (CR, \ r에)에 대한 지원이 필요합니다.

그래서 다른 콘솔로 전환 해보십시오.


막대의 디자인 (또는 색상 만?)을 변경하려는 것처럼 보입니다. 라이브러리에서 지원하는 것처럼 보이지 않으므로 소스 코드를보고 편집하거나 파이썬에서 다른 진행 막대를 구현해야합니다.

0

좋아, 나 자신에 의해 그것을 해결하고 난 쉽게 그렇게 할 수 있다고 생각하지 : D

을 대답이 wget라고 :

import wget 
url = "https://www.python.org/static/img/python-logo.png" 

filename = "logo.png" 
wget.download(url, filename) 

또는 내가 원래 파일 이름을 사용하려는 경우 :

import wget 
url = "https://www.python.org/static/img/python-logo.png" 

filename = wget.download(url, filename) 

은 지금은 단지 디자인을 변경하지만 내가 지금 가지고있는 디자인을 좋아하기 때문에 단지 선택 이잖아하는 방법을 알아낼해야합니다.