1
我在python 2.7中寫了一個非常簡單的腳本,叫做slowcat.py,它允許我以每秒一定的字節速率對cat文件。現在問題在於給出的速率在輸出流上增加了一倍。所以rate = 1字節導致每秒2字節,rate = 4字節導致每秒8字節。見代碼片段的實際方案:Python:標準輸出速率是它應該是的兩倍
#!/usr/bin/env python
import argparse
import time
import sys
import os
def get_configuration():
"""
Returns a populated configuration
"""
parser = argparse.ArgumentParser()
parser.add_argument('file', metavar='FILE', type=argparse.FileType('r'),
nargs='?', help="Input file")
parser.add_argument('--rate', type=int, default=666880,
help="Output rate in bytes per second")
return parser.parse_args()
def main():
cfg = get_configuration()
size = os.path.getsize(cfg.file.name)
bytes_read = 0
t1 = time.time()
while True:
n = min(cfg.rate, size-bytes_read)
if n <= 0:
break
buf = cfg.file.read(n)
sys.stdout.write(buf)
sys.stdout.flush()
bytes_read += n
t2 = time.time()
if t2-t1 < 1.0:
time.sleep(1.0 - (t2-t1))
t1 = t2
if __name__ == "__main__":
main()
現在我的問題是:爲什麼是我所傳遞的命令行上輸出速率的雙?如果你複製粘貼代碼片段,你可以很容易地在你的系統上試用它,例如python slowcat.py --rate 2 slowcat.py
呸,是如此愚蠢的我的更準確。謝謝。 –