bash與python的管道呼叫方法

2021-06-20 04:04:22 字數 644 閱讀 4492

1.呼叫方式

cat 3.txt | ./add2dict.py  word.xml 

2.邏輯實現

文件:**如下:

###確認輸入gb18030編碼

reader = io.open(sys.stdin.fileno(), mode='rb', closefd=false)

pipe_data = reader.read()

try:

pipe_data = pipe_data.decode('gb18030')

c_list = pipe_data.split('\n')

except:

print('請確認原檔案是gbk(gb18030)編碼!')

sys.exit(0)

原理: python從終端stdin讀資料,採用二進位制方式讀入,手工解碼. 

存在問題:無法區分下面2個操作

(1) cat 2.txt | ./add2dict.py  word.xml  

(2) ./add2dict.py  word.xml  

解決辦法:    print('*****fp.isatty()= ', sys.stdin.isatty() ) 可以區分

bash資料流重定向與管道

bash bourne again shell 是當前眾多linux系統的預設shell,擁有強大的功能,便於人們操縱使用linux系統。bash中使用的一些特殊符號有 符 號內 容 批註符號,這個最常被使用在script當中,視為說明。其後的資料均不執行 轉義符號,將特殊字元或萬用字元還原成一般字...

bash的的I O重定向及管道

程式 指令 資料 讀入資料 input 輸出資料 output 開啟的檔案都有乙個fd file descriptor 檔案描述符 標準輸入 keyborad,0 標準輸出 monitor,1 標準錯誤輸出 monitor,2 i o重定向 改變標準位置 輸出重定向 command new pos,...

bash基礎功能之多命令順序執行與管道符

1.多命令順序執行 多命令執行符 格式作用 命令1 命令2 多個命令順序執行,命令之間沒有任何邏輯聯絡 命令1 命令2 邏輯與當命令1正確執行,則命令2才會執行 當命令1執行不正確,則命令2不會執行 命令1 命令2 邏輯或當命令1執行不正確,則命令2才會執行 當命令1執行正確,則命令2不會執行 舉例...