当我使用PyCharm运行以下脚本时,在下载过程中不会打印换行符。
但是,当我在终端上运行此脚本时,会打印换行符。
以下是代码:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
import ssl
import urllib.request
def UrlOpen(url, filename):
data = urllib.request.urlopen(url=url, context=ssl.SSLContext(ssl.PROTOCOL_SSLv23))
size = int(data.headers.get("content-length"))
with open(filename, "wb") as f:
count = 0
now = time.time()
for i in data:
count += len(i)
f.write(i)
print("\rSize: {} b, Downloaded: {} b, Completed: {} %, Elapsed: {} s, Speed: {} b/s"
.format(size,
count,
int(100 * count / size),
int(time.time() - now),
count / (time.time() - now)), flush=True, end="")
if __name__ == "__main__":
test_url = "http://muhendislik.istanbul.edu.tr/insaat/wp-content/uploads/2015/10/temel_in%C5%9Faat%C4%B1.pdf"
file_path = "/home/tanberk/Masaüstü/test.pdf"
UrlOpen(test_url, file_path)
当我在终端上使用此脚本时,如何打印单行?提前谢谢。
答案 0 :(得分:1)
\r
是一种旧式的Mac行终结符或回车符。您的意思是\n
换行吗?
print
始终包含换行符。您必须使用sys.stdout.write
将其排除,或者将来使用end=
关键字参数作为print的函数版本。