让一个python源文件也能像bat批处理文件那样运行[转]
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                让一个python源文件也能像bat批处理文件那样运行[转]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                有沒有想過讓一個python源文件也能像bat批處理文件那樣運行?下面給大家演示一下一個小小的trick。
?
?| 1 2 | # || cd "%~dp0" && python "%~0" && goto :eof print "Hello, world!" | 
?
把上面的代碼保存成一個bat文件,暫且命名為test.bat吧。先看一下運行結果:
?
?
下面這句是來到腳本的路徑之下。
?
?| 1 | cd "%~dp0" | 
?
而%~0是指當前腳本的名稱。
?
?| 1 | goto :eof | 
?
則是直接跳到腳本的末尾。
?
上面的腳本巧用的是#字符和||。#在Python中是注釋字符,而||卻在批處理腳本中是或短路運算。
不過上面還有一點小問題,會輸出說#不是一個可識別的命令。對于這個問題,可以利用重定向的方法來屏蔽這個錯誤。最終的代碼就是這樣:
?
?| 1 2 | # > nul 2>&1 || cd "%~dp0" && python "%~0" && goto :eof print "Hello, world" | 
?
把輸出定向到空設備,并連接標準輸出和錯誤輸出(其實不連接而只重定向錯誤輸出也可以的)。最后的結果是這樣的:
?
?到此,基本實現了把python腳本當bat文件運行,而且還用python運行這個腳本!這樣就可以用一個文件來運行了!這個方法應該還可以舉一反三,可以試一下其他腳本了。除了一點小小的問題:不能隱藏命令的顯示,即在運行命令的時候會先顯示第一行命令,然后才執行。如果有網友有好的方法,歡迎推薦。
總結
以上是生活随笔為你收集整理的让一个python源文件也能像bat批处理文件那样运行[转]的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 【Splay】【块状链表】bzoj322
- 下一篇: 微信浏览器内打开App Store链接
