0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Linux命令行中運(yùn)行Python腳本

jf_78858299 ? 來(lái)源:運(yùn)維漫談 ? 作者:運(yùn)維漫談 ? 2023-05-12 14:49 ? 次閱讀

Python 是一種高級(jí)編程語(yǔ)言,被廣泛應(yīng)用于數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、Web 開(kāi)發(fā)等領(lǐng)域。在 Linux 操作系統(tǒng)中,Python 是一個(gè)默認(rèn)安裝的解釋器,用戶(hù)可以通過(guò)命令行界面(CLI)來(lái)運(yùn)行 Python 腳本。

在本文中,我們將詳細(xì)介紹如何在 Linux 命令行中運(yùn)行 Python 腳本。我們將討論以下主題:

  • Python 解釋器在 Linux 中的位置
  • 創(chuàng)建 Python 腳本
  • 運(yùn)行 Python 腳本
  • 添加參數(shù)和選項(xiàng)
  • 將輸出重定向到文件
  • 常見(jiàn)問(wèn)題和解決方法

Python 解釋器在 Linux 中的位置

在 Linux 中,Python 解釋器通常安裝在 /usr/bin/python/usr/bin/python3 目錄下。如果您不確定 Python 解釋器的位置,可以在命令行中運(yùn)行以下命令:

which python

這將顯示 Python 解釋器的完整路徑。如果您安裝了多個(gè)版本的 Python 解釋器,可以使用 python3 命令來(lái)指定使用 Python 3.x 版本的解釋器。

創(chuàng)建 Python 腳本

創(chuàng)建 Python 腳本非常簡(jiǎn)單。在 Linux 命令行中,您可以使用任何文本編輯器來(lái)創(chuàng)建一個(gè)新的 Python 腳本文件。例如,使用 nano 命令來(lái)創(chuàng)建一個(gè)名為 hello.py 的 Python 腳本:

nano hello.py

這將打開(kāi) nano 編輯器,并在其中創(chuàng)建一個(gè)新文件 hello.py。您可以在該文件中編寫(xiě) Python 代碼。例如,以下是一個(gè)簡(jiǎn)單的 Python 腳本,它將打印一條消息:

print("Hello, World!")

nano 編輯器中,您可以使用快捷鍵 Ctrl + X 來(lái)保存并退出編輯器。當(dāng)您按下該快捷鍵時(shí),您將看到提示消息詢(xún)問(wèn)是否要保存文件。按下 Y 鍵即可保存文件。然后,您將被帶回到命令行界面。

運(yùn)行 Python 腳本

要在 Linux 命令行中運(yùn)行 Python 腳本,您需要使用以下命令:

python hello.py

這將使用默認(rèn)的 Python 解釋器來(lái)執(zhí)行 hello.py 文件中的代碼,并在命令行界面上輸出 "Hello, World!" 消息。如果您安裝了多個(gè)版本的 Python 解釋器,可以使用 python3 命令來(lái)指定使用 Python 3.x 版本的解釋器。例如,要使用 Python 3.x 版本的解釋器來(lái)運(yùn)行腳本,請(qǐng)使用以下命令:

python3 hello.py

添加參數(shù)和選項(xiàng)

您可以在命令行中向 Python 腳本傳遞參數(shù)和選項(xiàng)。在 Python 腳本中,您可以使用sys.argv 對(duì)象來(lái)獲取這些參數(shù)和選項(xiàng)。sys.argv 是一個(gè)包含命令行參數(shù)的列表,其中第一個(gè)元素是腳本的名稱(chēng),后面的元素是傳遞給腳本的參數(shù)和選項(xiàng)。以下是一個(gè)簡(jiǎn)單的 Python 腳本,它將讀取傳遞給它的參數(shù),并將它們打印到命令行界面上:

import sys

for arg in sys.argv:
    print(arg)

要向 Python 腳本傳遞參數(shù),請(qǐng)?jiān)诿钚兄惺褂靡韵旅睿?/p>

python script.py arg1 arg2 arg3

這將運(yùn)行 script.py 文件,并將 arg1、arg2arg3 作為參數(shù)傳遞給它。在 Python 腳本中,您可以使用 sys.argv 來(lái)訪(fǎng)問(wèn)這些參數(shù)。例如,使用以下命令來(lái)運(yùn)行上面的 Python 腳本,并將 arg1、arg2arg3 作為參數(shù)傳遞給它:

python script.py arg1 arg2 arg3

這將輸出以下內(nèi)容:

script.py
arg1
arg2
arg3

除了參數(shù)外,您還可以在命令行中使用選項(xiàng)來(lái)配置 Python 腳本的行為。例如,以下是一個(gè) Python 腳本,它將讀取傳遞給它的選項(xiàng),并將它們打印到命令行界面上:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--name", help="your name")
parser.add_argument("--age", help="your age")

args = parser.parse_args()

print(f"Your name is {args.name}")
print(f"Your age is {args.age}")

在上面的腳本中,我們使用 argparse 模塊來(lái)解析命令行選項(xiàng)。使用 add_argument 方法來(lái)定義需要接受的選項(xiàng)。在這個(gè)例子中,我們定義了兩個(gè)選項(xiàng):--name--age。然后,我們使用 parse_args 方法來(lái)解析這些選項(xiàng),并將它們保存在 args 對(duì)象中。最后,我們將使用 args 對(duì)象來(lái)訪(fǎng)問(wèn)選項(xiàng)的值,并將它們打印到命令行界面上。

要使用選項(xiàng)來(lái)運(yùn)行 Python 腳本,請(qǐng)?jiān)诿钚兄惺褂靡韵旅睿?/p>

python script.py --name Alice --age 30

這將運(yùn)行 script.py 文件,并將 --name--age 選項(xiàng)設(shè)置為 Alice30。在 Python 腳本中,我們使用 argparse 模塊來(lái)解析這些選項(xiàng),并將它們打印到命令行界面上。

將輸出重定向到文件

默認(rèn)情況下,Python 腳本的輸出將打印到命令行界面上。但是,有時(shí)您可能希望將輸出保存到文件中。在 Linux 中,您可以使用輸出重定向來(lái)實(shí)現(xiàn)這一點(diǎn)。

要將 Python腳本的輸出重定向到文件,請(qǐng)?jiān)诿钚兄惺褂靡韵旅睿?/p>

python script.py > output.txt

這將運(yùn)行 script.py 文件,并將輸出重定向到 output.txt 文件中。在文件中,您將看到與命令行界面上相同的輸出。

您還可以將輸出附加到文件中,而不是覆蓋它。要附加輸出,請(qǐng)使用以下命令:

python script.py >> output.txt

這將運(yùn)行 script.py 文件,并將輸出附加到 output.txt 文件的末尾。

使用管道連接多個(gè)命令

在 Linux 中,您可以使用管道 | 將多個(gè)命令連接在一起。這將使每個(gè)命令的輸出成為下一個(gè)命令的輸入。

例如,假設(shè)您有一個(gè) Python 腳本,它輸出一系列數(shù)字,您希望對(duì)這些數(shù)字進(jìn)行排序。您可以使用以下命令來(lái)實(shí)現(xiàn)這一點(diǎn):

python script.py | sort

這將運(yùn)行 script.py 文件,并將其輸出發(fā)送到 sort 命令。sort 命令將讀取 script.py 文件的輸出,并將數(shù)字排序后將其輸出到命令行界面上。

您還可以將多個(gè)命令連接在一起來(lái)執(zhí)行復(fù)雜的操作。例如,以下命令將運(yùn)行一個(gè) Python 腳本,該腳本輸出一些文本,然后將這些文本傳遞給 grep 命令,grep 命令將搜索包含特定單詞的行:

python script.py | grep "keyword"

這將運(yùn)行 script.py 文件,并將其輸出發(fā)送到 grep 命令。grep 命令將搜索包含 "keyword" 的行,并將它們輸出到命令行界面上。

使用 Python 腳本自動(dòng)化任務(wù)

使用 Python 腳本在 Linux 命令行中運(yùn)行程序可以自動(dòng)化許多任務(wù)。例如,您可以使用 Python 腳本來(lái):

  • 自動(dòng)化數(shù)據(jù)備份和恢復(fù)
  • 自動(dòng)更新軟件包
  • 自動(dòng)管理文件系統(tǒng)
  • 自動(dòng)發(fā)送電子郵件或短信
  • 自動(dòng)化服務(wù)器管理任務(wù),如日志清理和監(jiān)控

這里是一個(gè)例子,演示了如何使用 Python 腳本自動(dòng)化數(shù)據(jù)備份和恢復(fù)。

import os
import shutil
import tarfile

def backup(source, destination):
    with tarfile.open(destination, "w:gz") as tar:
        tar.add(source)

def restore(source, destination):
    with tarfile.open(source, "r:gz") as tar:
        tar.extractall(destination)

if __name__ == "__main__":
    # 備份數(shù)據(jù)
    source = "/home/user/data"
    destination = "/home/user/backup.tar.gz"
    backup(source, destination)

    # 恢復(fù)數(shù)據(jù)
    source = "/home/user/backup.tar.gz"
    destination = "/home/user/data-restored"
    restore(source, destination)

這個(gè) Python 腳本將一個(gè)目錄壓縮成一個(gè) tar.gz 文件,并將其保存到備份目錄中。它還提供了一個(gè)恢復(fù)函數(shù),該函數(shù)將 tar.gz 文件解壓縮到指定目錄中。

您可以將此腳本添加到 crontab 文件中,以在每天或每周自動(dòng)備份數(shù)據(jù)。要編輯 crontab 文件,請(qǐng)?jiān)诿钚兄休斎耄?/p>

crontab -e

然后添加以下行:

0 0 * * * /usr/bin/python /path/to/backup_script.py

這將每天午夜自動(dòng)運(yùn)行腳本,將數(shù)據(jù)備份到指定的目錄中。

總結(jié)

在 Linux 命令行中運(yùn)行 Python 腳本是一種有效的自動(dòng)化任務(wù)和快速編寫(xiě)腳本的方法。使用 Python,您可以輕松地讀取和操作文件、數(shù)據(jù)和網(wǎng)絡(luò)資源。您可以將 Python 腳本與其他 Linux 命令和工具連接在一起,以構(gòu)建強(qiáng)大的自動(dòng)化工具。通過(guò)了解如何在 Linux 命令行中運(yùn)行 Python 腳本,您可以在 Linux 系統(tǒng)上執(zhí)行各種任務(wù),并將其自動(dòng)化,從而節(jié)省時(shí)間和提高效率。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1276

    瀏覽量

    70534
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11416

    瀏覽量

    212268
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1952

    瀏覽量

    35669
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8478

    瀏覽量

    133819
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4822

    瀏覽量

    85817
收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    caxa命令行的應(yīng)用

    caxa命令行的應(yīng)用 命令行對(duì)于大多用戶(hù)來(lái)說(shuō)往往只是輸入數(shù)據(jù)的作用,但是其中的奧妙還有很多,下面就給大家
    發(fā)表于 10-18 18:18 ?2367次閱讀

    AWS提供基于WEB的命令行訪(fǎng)問(wèn)途徑

    亞馬遜云服務(wù)(AWS)今日正式推出了基于 Amazon Linux 2 的 CloudShell 服務(wù),旨在為用戶(hù)提供基于 Web 的功能齊全的命令行訪(fǎng)問(wèn)途徑。在今日的公告,亞馬遜首席技術(shù)官
    的頭像 發(fā)表于 12-16 16:12 ?2071次閱讀

    Linux 命令行教程好書(shū)推薦

    今天跟大家推薦個(gè) Linux 命令行教程:《The Linux Command Line》,中文譯名:《Linux 命令行大全》。 該書(shū)作者
    的頭像 發(fā)表于 02-14 09:25 ?1603次閱讀

    何在Linux使用pidof命令

    `pidof`是一個(gè)命令行程序,可讓您找到正在運(yùn)行程序的進(jìn)程ID。在教程,我們將說(shuō)明如何在Linux 使用pidof
    的頭像 發(fā)表于 12-05 17:01 ?2523次閱讀

    Linux命令行與shell腳本編寫(xiě)

    Linux命令行與shell腳本編寫(xiě)
    發(fā)表于 01-11 16:50 ?4次下載

    何在Linux命令行中格式化輸出xml

    我們先前分享過(guò)一篇關(guān)于在命令行中格式化輸出 json 文件的文章,今天我們?cè)賮?lái)分享一下如何在命令行中格式化輸出 xml。
    的頭像 發(fā)表于 01-12 17:37 ?1713次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>命令行</b>中格式化輸出xml

    如何使用命令行Linux查找文件?

    對(duì)于Linux新用戶(hù)來(lái)說(shuō),在Linux查找文件可能有點(diǎn)困難。但是,在適當(dāng)?shù)闹笇?dǎo)下,任何人都可以創(chuàng)建文件快捷方式或找到其Linux系統(tǒng)中有多少文件。 我們必須使用
    的頭像 發(fā)表于 03-23 14:55 ?4556次閱讀

    linux命令行與shell編程實(shí)戰(zhàn)

    Linux命令行與Shell編程實(shí)戰(zhàn)主要涉及以下內(nèi)容: Linux命令行基礎(chǔ):學(xué)習(xí)Linux命令行
    的頭像 發(fā)表于 11-08 10:57 ?963次閱讀

    linux虛擬機(jī)怎么調(diào)出命令行

    Linux虛擬機(jī)調(diào)出命令行界面,可以通過(guò)以下步驟實(shí)現(xiàn): 打開(kāi)虛擬機(jī),進(jìn)入到Linux系統(tǒng)。 在桌面或應(yīng)用菜單中找到終端或命令行圖標(biāo),點(diǎn)擊
    的頭像 發(fā)表于 11-08 11:28 ?3511次閱讀

    linux切換到命令行模式

    Linux,可以通過(guò)以下步驟切換到命令行模式: 打開(kāi)終端??梢栽趹?yīng)用菜單中找到終端或命令行終端。 在終端輸入
    的頭像 發(fā)表于 11-13 16:47 ?2051次閱讀

    linux虛擬機(jī)怎么調(diào)出命令行

    Linux虛擬機(jī)是一種模擬運(yùn)行Linux操作系統(tǒng)的虛擬環(huán)境,它可以在Windows、Mac、Linux等主機(jī)系統(tǒng)上運(yùn)行。在
    的頭像 發(fā)表于 11-17 09:55 ?4132次閱讀

    linux命令行運(yùn)行步驟

    運(yùn)行Linux命令行涉及以下步驟: 打開(kāi)終端 在Linux系統(tǒng),打開(kāi)命令行界面的方式有多種,最
    的頭像 發(fā)表于 11-17 10:18 ?1023次閱讀

    pycharm命令行終端運(yùn)行代碼

    Python是一種非常流行的編程語(yǔ)言,許多開(kāi)發(fā)者使用它來(lái)編寫(xiě)各種應(yīng)用程序和腳本。為了方便開(kāi)發(fā)者編寫(xiě)和測(cè)試代碼,PyCharm是一種集成開(kāi)發(fā)環(huán)境(IDE),它提供了許多功能和工具,其中包括命令行終端
    的頭像 發(fā)表于 11-22 11:20 ?5662次閱讀

    eclipse怎么使用命令行

    。JDK是運(yùn)行Java程序所必需的環(huán)境,而Eclipse則是一個(gè)基于Java開(kāi)發(fā)的IDE。在確保安裝完畢后,我們可以通過(guò)以下步驟來(lái)在命令行
    的頭像 發(fā)表于 12-06 11:26 ?3278次閱讀

    樹(shù)莓派新手必看!在樹(shù)莓派上編寫(xiě)和運(yùn)行 Shell 腳本!

    在本教程,我將討論Shell腳本的基礎(chǔ)知識(shí)、它們的用途以及如何在RaspberryPi上編寫(xiě)和運(yùn)行Shell腳本。什么是Shell
    的頭像 發(fā)表于 03-25 09:28 ?159次閱讀
    樹(shù)莓派新手必看!在樹(shù)莓派上編寫(xiě)和<b class='flag-5'>運(yùn)行</b> Shell <b class='flag-5'>腳本</b>!

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品