[英]Run a python script from another python script and pass variables to it
還有一些類似的問題。 但是,或者答案沒有涵蓋對我來說很關鍵的特定部分,或者我只是聽不懂。 所以,讓我解釋一下我的問題:
我想創建3個python腳本。 我們稱它們為p1.py,p2.py和p3.py。 當我運行p1時,它將收集時間信息
import datetime
captureTime = datetime.datetime.now()
然后它將更改日期的格式並將其與變量一起存儲,如下所示
folderName = captureTime.strftime('%Y-%m-%d-%H-%M-%S')
然后,它將創建一個由字符串“ folderName”的值命名的文件夾。
在這部分之后,我不知道該怎么辦。
p1應該運行p2和p3,並將'folderName'的值傳遞給它們,然后停止; 並且,p2和p3應該在以“ folderName”值命名的文件夾下創建文件。
謝謝。
在p1中:
import p2
args = ['foo', bar]
p2.main(args)
在p2中:
def main(args):
do_whatever()
if __name__ == '__main__':
main()
p3將具有與p2類似的結構
您可以利用子流程模塊來執行外部命令。 最好先從簡單得多的命令入手,以掌握所有內容。 下面是一個虛擬的示例:
import subprocess
from subprocess import PIPE
def main():
process = subprocess.Popen('echo %USERNAME%', stdout=PIPE, shell=True)
username = process.communicate()[0]
print username #prints the username of the account you're logged in as
process = subprocess.call('python py1.py --help', shell=True)
process = subprocess.call('python py2.py --help', shell=True)
process = subprocess.call('python py3.py --help', shell=True)
if __name__ == '__main__':
main()
這將從echo %USERNAME%
獲取輸出並將其存儲。 它還將運行您的三個腳本,但對它們不起作用。 您可以如第一個示例所示,將腳本的輸出PIPE
並將其反饋回您的下一個腳本。
這不是執行此操作的唯一方法(您可以導入其他腳本)。 如果您希望有一個外部主腳本來控制和操縱所有子腳本,那就很好了。
如果您尚未檢查我們的argparse ,則應該。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.