一、使用工具:python、linux
二、方法步驟:有三種方法
1、 最簡單的方法,但是不安全
raw_input() :
pwd = raw_input('password: ')
print pwd
# password: aaa
# aaa
2、很安全,但是看不到輸入的位數,會讓人覺得有點不習慣,不知道的還以為沒有在輸入
getpass.getpass() :
import getpass
pwd = getpass.getpass('password: ')
print pwd
# password:
# aaaa
3、
msvcrt.getch() :
代碼如下:
import msvcrt, sys
def pwd_input():
chars = []
while True:
newChar = msvcrt.getch()
if newChar in '\r\n':
# 如果是換行,則輸入結束
print ''
break
elif newChar == '\b':
# 如果是退格,則刪除末尾一位
if chars:
del chars[-1]
sys.stdout.write('\b')
# 刪除一個星號,但是不知道為什麼不能執行...
else:
chars.append(newChar)
sys.stdout.write('*')
# 顯示為星號
print ''.join(chars)
pwd = pwd_input()
print pwd
# ******
# aaaaaa
三、注意事項:第三種方法解決了第二種方法不能顯示輸入位數的問題,但是如果按退格鍵(backspace)的話,雖然實際的是退格了,
但控制台卻沒有顯示相應的退格,比如,當前輸入是:abcd,顯示為:****,然後現在打一個退格鍵,實際
輸入為:abc,而顯示仍為:****。不知道為什麼 sys.stdout.write('\b') 這行沒有執行,估計是和使用msvcrt.getch()有關系。感興趣的朋友可以進一步研究一下。
『貳』 在linux中如何運行python 的 *.py文件
先將終端所在路徑切換到python腳本文件的目錄下
然後給腳本文件運行許可權,一般755就OK,如果完全是自己的私人電腦,也不做伺服器什麼的,給777的許可權問題也不大(具體許可權含義參考chmod指令的介紹,就不贅述了):
chmod 755 ./*.py
然後執行。
在linux命令行模式中運行python,進入python互動式環境,寫程序後直接輸出結果。
『叄』 python的運行方式
Python可以通過多種方式運行,包括但不限於直接在命令行或終端輸入並執行、通過集成開發環境(IDE)執行以及作為腳本在操作系統上運行。
Python作為一種解釋型語言,具有靈活多樣的運行方式,適應了不同的使用場景和用戶需求。以下是幾種常見的Python運行方式:
1. 命令行或終端運行:
Python代碼可以在命令行或終端環境中直接輸入並執行。這種方式適合於運行簡單的Python語句和進行互動式編程。用戶可以在終端中輸入Python命令,解釋器會即時解析並執行代碼,返回結果。例如,在Windows或Linux的命令行中輸入"python",然後按回車鍵,即可進入Python互動式環境。
2. 集成開發環境(IDE)執行:
IDE(集成開發環境)提供了集成編輯、編譯、調試和運行Python代碼的功能。Python有多種IDE可供選擇,如PyCharm、Visual Studio Code等。用戶可以在IDE中編寫代碼,設置斷點,調試程序,並執行代碼。IDE提供了豐富的工具和界面,幫助開發人員提高開發效率和代碼質量。
3. 腳本運行:
Python腳本是一系列Python語句的集合,可以保存在擴展名為.py的文件中。用戶可以在命令行或終端中運行Python腳本。在Windows環境下,可以創建一個批處理文件(.bat)或使用Windows計劃任務來定時運行Python腳本。在Linux或Mac環境下,可以使用cron定時任務來執行Python腳本。此外,還可以通過操作系統提供的其他方式,如雙擊文件或設置文件關聯,直接運行Python腳本。
以上所述的幾種方式,並不是Python運行的唯一方式,還有其他方式,比如將Python代碼打包為可執行文件、使用Python Web框架(如Django、Flask)來構建Web應用程序等。這些運行方式使得Python能夠適應各種復雜的項目和應用場景,滿足不同用戶的需求。無論是學習、開發還是科學計算,Python都能提供便捷高效的運行方式。
『肆』 linux 終端 運行 python
Linux終端中的操作均是使用命令行來進行的。因此,對於小白來說,熟記幾個基本的命令行和使用方法能夠較快的在Linux命令行環境中將python用起來。
打開命令行窗口
打開命令行窗口的快捷鍵如下:
Ctrl + Alt + t
關閉名命令行窗口
關閉命令行窗口的快捷鍵如下:
Ctrl + d
進入python環境
在命令行中直接輸入python即進入了python的編輯環境。進入環境後最明顯的提示是:游標由~$變成>>>。
退出python環境
使用ctrl +d的方式退出python環境。回到命令行環境。
在python環境中輸入多行函數
在python環境中,回車是輸入結束並執行語句。在輸入多行函數的情況下,輸入一行後回車則直接運行了某句代碼而不是整個函數塊。因此,需要能夠換行但不結束輸入的方法。
在語句的末尾輸入英文的;\即可實現換行。
例如:
?
1
2
3
def weight_variable(shape):
initial = tf.truncated_normal(shape, stddev=0.1);\
return tf.Variable(initial);\
注意:輸入函數塊時注意縮進,否者會報出IndentationError: unexpected indent python錯誤。
non-ascii character xe5 in file解決方法
原因:程序中的編碼錯誤,python默認支持acii模式,但不支持utf8,因此,程序中的中文注釋會引發Error。
解決方法:源代碼文件第一行添加#coding:utf-8即可避免。
退出python環境
使用ctrl +d的方式退出python環境。回到命令行環境。
在python環境中輸入多行函數
在python環境中,回車是輸入結束並執行語句。在輸入多行函數的情況下,輸入一行後回車則直接運行了某句代碼而不是整個函數塊。因此,需要能夠換行但不結束輸入的方法。
在語句的末尾輸入英文的;\即可實現換行。
例如:
?
1
2
3
def weight_variable(shape):
initial = tf.truncated_normal(shape, stddev=0.1);\
return tf.Variable(initial);\
注意:輸入函數塊時注意縮進,否者會報出IndentationError: unexpected indent python錯誤。
non-ascii character xe5 in file解決方法
原因:程序中的編碼錯誤,python默認支持acii模式,但不支持utf8,因此,程序中的中文注釋會引發Error。
解決方法:源代碼文件第一行添加#coding:utf-8即可避免。
『伍』 Linux:Python編寫Linux自定義命令工具
摘要: Linux , Python
工作中需要頻繁使用到一個字元串的md5,因此編寫一個md5命令工具,輸入字元串直接得到輸出,並且命令支持參數設置,比如是否事先格式化,指定不同參數可以支持多功能輸出,操作步驟如下
直接vim一個腳本,腳本名md5不需要.py後綴,這樣更像一個命令,注意在腳本第一行引入python解釋器,並設置utf-8編碼
其中-f支持先格式化再得到md5,-l支持傳入多個字元串用空格分開
賦予可執行許可權
測試是否符合要求
直接放置到 /usr/local/bin 目錄下(需要root許可權)
也可以使用軟連接的方式,推薦使用絕對路徑
之後就可以在環境變數中直接使用到md5命令
shebang :中文翻譯「釋伴」,由 #! 開頭的字元串,出現在文本文件的 第一行 。類UNIX操作系統的程序載入器會分析shebang後的內容,將這些內容作為解釋命令,並調用該指令,並將載有 shebang的文件路徑作為該解釋器 的參數
比如 #!/bin/bash 就是使用/bin/bash作為解釋器運行腳本,如果以Python作為解釋器運行腳本先找到Python解釋器的路徑,一般在Linux自帶的 /usr/bin/python 是Python2版本,也可以指定其他Python版本 #!/opt/anaconda3/bin/python ,第二行為 # coding=utf-8 用來指定編碼格式,否則Python2輸出中文亂碼
對於自定義腳本,推薦放置在 /usr/local/bin 目錄,有多個可執行文件目錄在環境變數中,區別如下:
/bin : 包含二進制可執行文件,為系統最基本的命令,如ls等
/sbin : 與/bin 類似,不同之處是其為root許可權命令文件
/usr/bin : 系統預裝可執行文件,會隨著系統升級而改變
/usr/sbin : 同上,不同之處是其為root許可權運用
/usr/local/bin : 三級目錄,用戶自己的可執行文件,系統不管理
/usr/local/sbin : root許可權用戶程序
『陸』 python執行linux命令,怎樣自動輸入 yes/no
這種交互猜棚銷式命令可以使用pexpect模塊實現
>>>importpexpect
>>>child=和散pexpect.spawn('ssh127.0.0.1')
>>>child.expect('continue')
0
>>>child.sendline('yes')
4
>>>printchild.before
Theauthenticityofhost'127.0.0.1(127.0.0.1)'can'tbeestablished.
ECDSAkeyfingerprintisd1:61:c6:ae:ab:bc:22:3e:52:57:49:d5:05:6f:4b:90.
Are穗游yousureyouwantto
傳送門
http://990487026.blog.51cto.com/10133282/1715953
『柒』 如何用Python寫Linux命令
首先, 創建一個文件, 並給這個文件起一個名字, 該名字就是最後的命令, 例如add. 注意, 這個文件名字不必以py結尾. 然後給這個文件運行許可權, 如下:
然後, 打開剛剛創建的文件, 將下面的代碼寫入頭兩行. 其中第一行說明這個文件由python解釋器來運行, 第二行指定文件的編碼.
之後, 導入標准模塊argparse.
導入模塊之後, 你可以寫任何你想要做的功能, 不過要將功能封裝成模塊, 而不是直接運行, 這是出於良好的編程實踐. 舉個例子:
在文件的最下面, 解析命令行參數, 並調用上面寫好的功能模塊
最後, 保存退出. 在命令行裡面運行這個文件,如下
如何用Python寫Linux命令?