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不會執行 舉例...