第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

子進(jìn)程 check_output 減少我的輸出

子進(jìn)程 check_output 減少我的輸出

猛跑小豬 2021-11-30 18:37:25
我必須使用以下方法編寫(xiě)幾個(gè) C 程序在多個(gè)文件上運(yùn)行所需的時(shí)間:time ./program filename到一個(gè)電子表格,我正在使用subprocess.check_output它stdout作為一個(gè)字符串。我應(yīng)該得到一些類(lèi)似的東西:real    0m0.001suser    0m0.001ssys     0m0.000s但我得到:b'0.00user 0.00system 0:00.00elapsed ?%CPU (0avgtext+0avgdata 1388maxresident)k\n0inputs+0outputs (0major+60minor)pagefaults 0swaps\n'我看到用戶和系統(tǒng)時(shí)間,但它們?cè)谛?shù)點(diǎn)后兩位后被截?cái)?。有沒(méi)有辦法確保輸出讀取所有 3 個(gè)小數(shù)位?這是我的代碼:import xlwtimport subprocessfiles = ('100KB.txt', '1MB.txt', '10MB.txt', '100MB.txt')programs = ('./10kBuffer', './step2', './step3', './step4')command = ['time', programs[0], files[0]]out = subprocess.check_output(command, stderr=subprocess.STDOUT)print(out)
查看完整描述

1 回答

?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊

那是因?yàn)?GNUtime使用默認(rèn)格式字符串,更詳細(xì),但您需要-p選項(xiàng)。


引用手冊(cè):


默認(rèn)格式字符串是:


%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps


當(dāng)給出 -p 選項(xiàng)時(shí),使用(便攜式)輸出格式:


real %e

user %U

sys %S

您還需要對(duì)輸出進(jìn)行解碼,否則您將得到bytes而不是str,并且不會(huì)解釋換行符。前任:


>>> print(b'hello\nworld\n')

b'hello\nworld\n'

>>> print('hello\nworld\n')

hello

world

所以我會(huì)按原樣修復(fù)您的代碼:


command = ['time', '-p', programs[0], files[0]]

out = subprocess.check_output(command, stderr=subprocess.STDOUT)

print(out.decode())

編輯:另一個(gè)答案似乎有助于通過(guò)使用內(nèi)置的 shell 來(lái)修復(fù)丟失的小數(shù)。您可以混合兩個(gè)答案以獲得所需的字符串輸出,并帶有足夠的小數(shù)。


請(qǐng)注意,除非您想對(duì)命令使用分析器,否則您似乎無(wú)法做得更好(請(qǐng)參閱如何獲取 Python 程序的執(zhí)行時(shí)間?)


查看完整回答
反對(duì) 回復(fù) 2021-11-30
  • 1 回答
  • 0 關(guān)注
  • 208 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)