亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

解決在Python中運(yùn)行需要密碼的bash命令的方法
P粉476046165
P粉476046165 2024-03-22 13:20:24
0
1
944

我正在編寫(xiě)一個(gè)Python函數(shù),需要使用bash將MySQL數(shù)據(jù)庫(kù)導(dǎo)出為.sql文件。我使用的是mysqldump命令。

mysqldump -u bandana -p movies > /Users/Mac/Downloads/testOutput.sql

這個(gè)命令對(duì)我的目的來(lái)說(shuō)足夠好用。我的問(wèn)題是如何將它轉(zhuǎn)換為可以從函數(shù)中運(yùn)行的Python腳本。

我嘗試使用os.system,但是在運(yùn)行過(guò)程中需要在終端中輸入密碼。

def cloneDB():
    os.system("mysqldump -u bandana -p movies > /Users/Tis_Me/Downloads/testOutput.sql")

輸入密碼:

我還嘗試使用subprocesses模塊,但是我對(duì)它一無(wú)所知。我只是得到了一些我不知道如何解決的錯(cuò)誤。

def cloneDB():
    subprocess.run(["mysqldump", "-u bandana", "-p movies", "> /Users/Tis_Me/Downloads/testOutput.sql"])

我想知道是否有任何額外的參數(shù)或者其他東西可以添加,以便自動(dòng)輸入密碼,這樣函數(shù)就不需要詢問(wèn)密碼了。

期望的結(jié)果是cloneDB()函數(shù)在不需要詢問(wèn)密碼的情況下運(yùn)行。

P粉476046165
P粉476046165

全部回復(fù)(1)
P粉647504283

您可以將密碼直接放在命令行中,緊跟在-p之后

您也不能將輸出重定向放在參數(shù)列表中。那是shell語(yǔ)法,而不是命令參數(shù)。您可以使用subprocess.run()stdout選項(xiàng)來(lái)重定向其輸出。

def cloneDB():
    password = "something"
    with open("/Users/Tis_Me/Downloads/testOutput.sql", "w") as sqlfile:
        subprocess.run(["mysqldump", "-u", "bandana", f"-p{password}", "movies"], stdout=sqlfile)
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板