簡體   English   中英

如何評估python變量並將其作為參數傳遞給命令

[英]How to evaluate a python variable and pass it as a argument to a command

在下面的python腳本中,我試圖將當前日期和時間戳記轉換為名為logfile的python變量,該變量作為參數傳遞給使用os.system(...)執行的Windows命令的輸出重定向

但是我無法傳遞變量日志文件。 執行完此腳本后,我希望看到一個文件:例如log_28052019_133838.txt,其名稱在執行時具有日期和時間戳,並且具有dir / od命令的輸出,但是存儲在文件logfile中,告訴我說,在作為輸出重定向文件名傳遞之前,未對變量名logfile的python表達式求值。

有人可以指出我,我想念的是什么,實現我想要做的正確方法是什么。

#!/bin/python

import os
import time

fstr = time.strftime("%d%b%Y_%H%M%S")
logfile = "log_"+fstr+".txt"
rcmd = 'dir /OD >logfile '

os.system(rcmd)

似乎logfile的值將允許您使用字符串格式來定義命令(盡管此命令很脆弱,在實踐中不應使用):

logfile = time.strftime("log_%d%b%Y_%H%M%S.txt")
rcmd = 'dir /OD > {}'.format(logfile)
os.system(rcmd)

不過,使用subprocess模塊會更安全,以避免出現任何外殼問題。

logfile = time.strftime("log_%d%b%Y_%H%M%S.txt")
with open(logfile, "w") as fh:
    subprocess.run(['dir', '/OD'], stdout=fh)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM