當前位置:首頁 » 編程語言 » pythonshell輸出

pythonshell輸出

發布時間: 2023-03-30 22:29:23

1. python,awk,shell格式化輸出內容全解

話不多說,直接開始

eg:

echo "linux" | awk '{printf "|%-15s|\n",$1}'
|Linux |

說明:對於echo命令的輸出,Linux是經管道發給awk。printf函數包含一個控制串。百分號讓printf做好准備,它要列印一個佔15個格、向左對齊的字元串,這個字元串夾在兩個豎杠之間,並且以換行符結尾。百分號後的短劃線表示左對齊。控制串後面跟了一個逗號和$1。printf將根據控制串中的格式說明來格式化字元串Linux。

echo "Linux" | awk '{printf "|%15s|\n",$1}'
| Linux|

說明:字元串Linux被列印成一個佔15 格、向右對齊的字元串,夾在兩個豎杠之間,以
換行符結尾。

cat employees
Tom Jones 4424 5/12/66 543354
Mary Adams 5346 11/4/則消63 28765
Sally Chang 1654 7/22/54 650000
Billy Black 1683 9/23/44 336500

awk '{printf "The name is: %-15s ID is %8d\n", 3}' employees
The name is Tom ID is 4424
The name is Mary ID is 5346
The name is Sally ID is 1654
The name is Billy ID is 1683

說明:要列印的字元串放置在兩個雙引號之間。第一個格式說明符是%-15s,它對應的參數是$1,緊挨著控制串的右半邊引號後面的那個逗號。百分號引出格式說明:短劃運氏線表示左對齊,15s表示佔15格的字元串。這條命令用來列印一個左對齊、佔15格的字元串,後面跟著字元串的ID和一個整數。

echo -e識別轉義和特殊意義的符號,如換行符、n、製表符\t、轉義符\等。
[root@xuexi tmp]# echo 'Hello World!\n';echo "Hello World"!
Hello World!\n
Hello World!
[root@xuexi tmp]# echo -e 'Hello World!\n';echo "Hello World"!
Hello World!

Hello World!

printf "%-10s %-8s %-4s\n" 姓名 性別 體重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f\n" 楊過 男 48.6543
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876

運行
姓名 性別 體重kg
郭靖 男 66.12
楊過 男 48.65
郭芙 女 47.99
%s %c %d %f都是格式替代符

%-10s 指一個寬度為10個字元(-表示左對齊,沒有則表示右對齊),任何字元都會被顯示在10個字元寬的字元內,如果不足則自動以孫悄知空格填充,超過也會將內容全部顯示出來。

%-4.2f 指格式化為小數,其中.2指保留2位小數。
eg:
printf "%d %s\n" 1 "abc"
printf %s abcdef
printf %s abc def
printf "%s %s %s\n" a b c d e f g h i j
等等等等
希望大家了解一下

2. python 3.8.2 shell 可以輸出函數圖像么怎麼輸出函數圖像求助大神

用matplotlib這個庫繪圖

3. python怎麼獲得shell的輸出

執行如下shell命令消盯:$ python my.py > out.txt 2> err.txt則err.txt中會存有執行派顫腳本my.py的錯誤輸拿羨和出,out.txt中會含有正常的print結果。

4. Python shell中為啥有時候輸出的前面或下面有個點

這種紅橡爛色梁蔽漏的 感覺是輸出到errout的,你看看你的代碼里有沒並唯有相應的內容
或者 看看代碼有沒有錯誤

5. python調用shell腳本 獲取shell腳本中間的輸出值

import os
ss=os.popen("sh test.sh").readlines()
print ss

6. Python為什麼無法在shell上覆蓋輸出一行

print語句是標准輸出,就是按順序來的,不會覆蓋。

7. python3 獲取shell輸出的信息

print函數本身即可以將內容輸出到文件內。示例如下:
……
open("print_content.txt", "w") as file_out:
pass

print("hello", file = file_out)
file_out.close()
……

8. Python將Shell中的信息,導出到txt

可以用try...catch...捕獲異常,然後將異常信息寫入txt文檔或者記錄到日誌文件中,具體代碼如下:

  1. 寫入txt文件

    try:
    importsome_mole
    catchImportErrorase:
    withopen("a.txt","w")asf:
    f.write(e)
  2. 寫入日誌模塊(納圓仔標准庫中的logging模塊)

    FORMAT='%(asctime)-15s%(levelname)s%(filename)s[line:%(lineno)d]:%(message)s'
    logging.basicConfig(
    format=FORMAT,
    level=logging.DEBUG,
    腔攔filename="log.log",
    filemode='w'
    )
    try:
    洞汪importsome_mole
    catchImportErrorase:
    logging.error(e)

9. python怎麼執行shell命令

工具/原料

Python環境
方法/步驟

os.system("The command you want"). 這個調用相當直接,且是同步進行的,程序需要阻塞並等待返回。返回值是依賴於系統的,直接返回系統的調用返回值,所以windows和linux是不一樣的
os.popen(command[,mode[,bufsize]]),
圖中是一個例子.
可以看出,popen方法通過p.read()獲取終端輸出,而且popen需要關閉close().當執行成功時,close()不返回任何值,失敗
時,close()返回系統返回值. 可見它獲取返回值的方式和os.system不同。

使用commands模塊,圖中是一組例子。根據你需要的不同,commands模塊有三個方法可供選擇。getstatusoutput, getoutput, getstatus。

但是,如上三個方法都不是Python推薦的方法,而且在Python3中其中兩個已經消失。Python文檔中目前全力推薦第四個方法,subprocess! subprocess使用起來同樣簡單:


接調用命令,返回值即是系統返回。shell=True表示命令最終在shell中運行。Python文檔中出於安全考慮,不建議使用
shell=True。建議使用Python庫來代替shell命令,或使用pipe的一些功能做一些轉義。官方的出發點是好的,不過真心麻煩了很多,
so.... 如果你更關注命令的終端輸出,可以如下圖這樣操作, 同樣很簡單.

10. python shell怎麼使用

Python 中執行 Shell 命令有多種方法,stackoverflow 上有對這些方法進行比較的討論,Calling an external command in Python 指出使用subprocess模塊來實現更優。因此,本文說明如何使用subprocess模塊來實現 Shell 腳本的功能。
subprocess模塊提供多種方法來實現執行 Linux 的命令,例如subprocess.call()方法,subprocess.check_call()方法,等。這些方法都是對Popen類的封裝,故本文著重講述Popen類的使用。

執行 Shell 命令
可以通過向Popen()傳遞需要執行的命令來創建一個Popen對象,這樣,便會創建一個子進程來執行命令。例如:

child = subprocess.Popen(["ping","-c","5","leehao.me"])
1
上面的代碼會創建一個子進程來執行ping -c 5 leehao.me命令,這個命令採用列表的形式傳遞給Popen()方法。如果我們想直接採用ping -c 5 leehao.me字元串形式,可以添加shell=True來實現:

child = subprocess.Popen("ping -c 5 leehao.me", shell=True)
1
官方文檔指出由於安全原因故不建議使用shell=True,詳細說明可以參考官方文檔的描述。

等待子進程執行
子進程執行命令後,主進程並不會等待子進程執行。為了讓主進程等待子進程執行結束,需要顯示調用Popen.wait()方法。例如:

child = subprocess.Popen(["ping","-c","5","leehao.me"])
child.wait()
print 'parent finish'
1
2
3
這樣,主進程會等待子進程執行ping命令完畢後,才會列印出parent finish的輸出。

獲取執行結果
為了獲取Popen()子進程的輸出,可以使用Popen.communicate()方法,例如:

def subprocess_cmd(command):
process = subprocess.Popen(command,stdout=subprocess.PIPE, shell=True)
proc_stdout = process.communicate()[0].strip()
print proc_stdout

subprocess_cmd('echo leehao.me; echo www.leehao.me')
1
2
3
4
5
6
輸出:

leehao.me
www.leehao.me

process.communicate()方法可以實現主進程與子進程的通信。主進程可以通過它向子進程發送數據,也可以讀取子進程的輸出的數據。上面的例子中,我們在創建Popen對象時指定stdout=subprocess.PIPE,這樣主進程便可以讀取子進程的輸出。
communicate()方法返回一個元組:(stdoutdata, stderrdata),process.communicate()[0]即獲取子進程的標准輸出。
需要指出的是,調用communicate()方法後,主進程也會等待子進程執行完畢。
上面的例子中,子進程向標准輸出列印兩個字元串,主進程接收到了這些輸出,並列印出來。

熱點內容
瑞納自動買哪個配置 發布:2024-11-02 20:18:45 瀏覽:559
sql復制資料庫結構 發布:2024-11-02 20:18:43 瀏覽:582
yaf編譯 發布:2024-11-02 20:06:30 瀏覽:126
小數除以大數怎麼演算法 發布:2024-11-02 19:44:59 瀏覽:810
安卓手機如何重新設置付款密碼 發布:2024-11-02 19:31:44 瀏覽:980
多巴胺3mg靜脈注射怎麼配置 發布:2024-11-02 19:25:50 瀏覽:618
源碼之城 發布:2024-11-02 19:24:43 瀏覽:513
國軍標環境存儲要求 發布:2024-11-02 19:23:04 瀏覽:107
sql多行轉多列 發布:2024-11-02 19:17:52 瀏覽:119
linuxftp文件夾許可權 發布:2024-11-02 19:17:03 瀏覽:899