[python]输出一个简单的进度条
使用 sys.stdout 或 sys.stderr 就可以输出一个简单的进度条:
import time
import sys
f = sys.stdout
for n in range(1, 101):
s = ('#' * n).ljust(100, '-')
f.write(s)
f.flush()
time.sleep(0.3)
f.write('\r')
f.write('\n')
使用 sys.stdout 或 sys.stderr 就可以输出一个简单的进度条:
import time
import sys
f = sys.stdout
for n in range(1, 101):
s = ('#' * n).ljust(100, '-')
f.write(s)
f.flush()
time.sleep(0.3)
f.write('\r')
f.write('\n')
说实话,跳板机给研发的日常工作添加了些许麻烦。 幸好 fabric 提供了穿越跳板机的功能,使跳板机不再影响我们的工作。
$ fab --version
Fabric 1.8.1
Paramiko 1.12.0
# 跳板机
env.gateway = 'lisi@192.168.100.123'
# 目标服务器
env.hosts = ['foo@111.111.111.111',
'bar@111.111.111.112',
'bar2@122.123.124.139',
]
env.passwords = {
'lisi@192.168.100.123:22 ...
有时我们会碰到类似下面这样的 unicode 字符串:
u'\xe4\xbd\xa0\xe5\xa5\xbd'
这明显不是一个正确的 unicode 字符串,可能是在哪个地方转码转错了。
我们要想得到正确的 unicode 字符串首先就必须先将这个字符串转成非 unicode 字符串, 然后再进行解码。按照普通的办法进行 encode 肯定是不行的,因为这不是一个正确的 unicode 字符串:
In [1]: u'\xe4\xbd\xa0\xe5\xa5\xbd'.encode('utf8')
Out[1]: '\xc3\xa4\xc2\xbd\xc2\xa0\xc3\xa5\xc2\xa5\xc2 ...
通过设置 socket.settimeout
来实现超时功能:
import select import socket HOST = '127.0.0.1' PORT = 8000 timeout = 60 * 1 # 1 分钟 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 设置连接超时 s.settimeout(10) s.connect((HOST, PORT)) # 恢复默认超时设置 s.settimeout(None) s.connect((HOST, PORT)) s.sendall('msg')