python實現按回車鍵繼續程序_python實現按任意鍵繼續執行程序

在windows下寫bat的時候,通過pause命令,可以暫停程序運行,例如經常見的程序會在終端提示”按任意鍵繼續……”,用戶在終端回車后程序可以接著運行,這個功能有多大用途今天暫且不說,但我覺得應該有很多人也想在python下實現這個功能,這樣當自己寫的python程序運行時, 突然給出這么一個提示,然后自己再來個帥氣的回車,我覺得肯定給人一種非常專業的感覺,最起碼自己肯定被自己迷倒了,所以今天我們就學習下這段代碼,這里定義了一個函數,所以你可以嵌入到你的程序中,在任何你希望調用的地方調用它即可,使用非常的方便,代碼如下:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import os

import sys

import termios

def press_any_key_exit(msg):

# 獲取標準輸入的描述符

fd = sys.stdin.fileno()

# 獲取標準輸入(終端)的設置

old_ttyinfo = termios.tcgetattr(fd)

# 配置終端

new_ttyinfo = old_ttyinfo[:]

# 使用非規范模式(索引3是c_lflag 也就是本地模式)

new_ttyinfo[3] &= ~termios.ICANON

# 關閉回顯(輸入不會被顯示)

new_ttyinfo[3] &= ~termios.ECHO

# 輸出信息

sys.stdout.write(msg)

sys.stdout.flush()

# 使設置生效

termios.tcsetattr(fd, termios.TCSANOW, new_ttyinfo)

# 從終端讀取

os.read(fd, 7)

# 還原終端設置

termios.tcsetattr(fd, termios.TCSANOW, old_ttyinfo)

if __name__ == “__main__”:

press_any_key_exit(“按任意鍵繼續…”)

print ‘\n'

代碼不多解釋,看注釋,這里要說一下termios模塊,這個模塊提供了一個接口可以控制tty終端的Io,它所有函數第一個參數需要一個文件描述符,可以是整型的文件描述符,也可以是個文件對象,因為它可以控制在終端的顯示設置,常用場景就是用戶在終端輸入密碼時不要顯示出來,就跟我們用root登陸系統時系統給出輸入密碼提示符一樣, 代碼實現如下:

def getpass(prompt=”Password: “):

import termios, sys

fd = sys.stdin.fileno()

old = termios.tcgetattr(fd)

new = termios.tcgetattr(fd)

new[3] = new[3] & ~termios.ECHO

try:

termios.tcsetattr(fd, termios.TCSADRAIN, new)

passwd = raw_input(prompt)

finally:

termios.tcsetattr(fd, termios.TCSADRAIN, old)

return passwd

passwd = getpass()

print passwd

這個腳本運行會提示你輸入密碼,輸入后會打印出剛輸入的密碼,給這個2個例子也是說明termios的簡單用法,大家可以自己運行程序去體會下。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537342.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537342.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537342.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Beta

目錄 過去存在的問題任務分工規范后端總結卉卉家燦前端總結緒佩青元愷琳宇恒丹丹算法&API接口家偉鴻杰一好文檔&博客撰寫政演產品功能我們已經坐了哪些調整桌面控件合并我們會在Beta沖刺中做哪些改進組長博客:https://www.cnblogs.com/heihuifei/p/10084535…

項目驗收文檔合并技巧

1)先將各個文件word寫好,格式,字體調整好; 2)每個word導出PDF; 3)將導出的PDF合并到一個大的PDF;

xsl判斷節點存在_HashMap1.8之節點刪除分析

HashMap之節點刪除大家一直關注的都是HashMap如何添加節點,當節點數量大于8的時候轉化為紅黑樹,否則使用鏈表等等,但大家是否有看過刪除節點的處理邏輯呢? 今天來看看HashMap刪除節點的神來之筆問題來源在查看HashMap源碼時&#…

用Emit技術替代反射

System.Reflection.Emit命名空間類可用于動態發出Microsoft中間語言(MSIL)代碼,以便生成的代碼可以直接執行。反射也用于獲取有關類及其成員的信息。換句話說,反射是一種技術,允許您檢查描述類型及其成員的元數據&…

windows安裝TortoiseGit詳細使用教程

windows安裝TortoiseGit詳細使用教程【基礎篇】_小飛牛的技術博客_51CTO博客windows安裝TortoiseGit詳細使用教程【基礎篇】,環境:win8.164bit安裝準備:首先你得安裝windows下的git msysgit1.9.5安裝版本控制器客戶端tortoisegit tortoisegit…

keras中文文檔_【DL項目實戰02】圖像識別分類——Keras框架+卷積神經網絡CNN(使用VGGNet)

版權聲明:小博主水平有限,希望大家多多指導。目錄:【使用傳統DNN】BG大龍:【DL項目實戰02】圖像分類——Keras框架使用傳統神經網絡DNN?zhuanlan.zhihu.com【使用卷積神經網絡CNN】BG大龍:【DL項目實戰02】圖像識別分…

Java Html轉pdf實戰

Java Html轉pdf實戰 - 簡書年尾手頭沒啥事,干起了打雜工作,最近幫忙解決后端項目里一個html批量轉pdf速度慢的問題,項目里用到的轉換工具是 wkhtmltopdf ,這貨轉單個html還好,批量轉速...https://www.jianshu.com/p/d0…

Hadoop生態圈-Ambari控制臺功能簡介

Hadoop生態圈-Ambari控制臺功能簡介 作者:尹正杰 版權聲明:原創作品,謝絕轉載!否則將追究法律責任。 在經歷一系列安裝過程之后(部署過HDP后我終于發現為什么大家喜歡用它了,部署比CDH簡單是他優勢之一&…

oracle監聽啟動很慢

TNS-12531: TNS:cannot allocate memory 首先查看內存,free -m 發現當前的空閑內存還有很多,那就不是內存不足的問題 想到之前重啟過數據庫服務器,查看主機名hostname,然后在查看etc/hosts 中的主機名,發現兩者不一致,…

python地圖標注_Python 給定的經緯度標注在地圖上的實現方法

博主最近發現了python中一個好玩的包叫basemap,使用這個包可以繪制地圖。值得說一下的是,basemap還沒有pip檢索,因此不能直接使用pip install basemap,來安裝這個包。所以需要自己把下面兩個包自行下載,然后在該目錄下使用pip安裝…

剪映專業版PC端清理緩存與日志

清理緩存 這個簡單,在全局設置里,點擊刪除鍵,就可以 清理日志 軟件每次剪輯都會生成日志,日志路徑在 C:\Users\zengm\AppData\Local\JianyingPro\User Data\Log C:\Users\zengm\AppData\Local\JianyingPro\User Data\VELog

nodejs源碼_nodejs之setTimeout源碼解析

setTimeout是在系統啟動的時候掛載的全局函數。代碼在timer.js。function setupGlobalTimeouts() {const timers NativeModule.require(timers);global.clearImmediate timers.clearImmediate;global.clearInterval timers.clearInterval;global.clearTimeout timers.clear…

百度網盤PC端緩存文件夾

在C:\Users\zengm\AppData\Roaming\baidu\BaiduNetdisk\users\下面 BaiduYunCacheFileV0.db 文件為百度網盤目錄數據,結構為: 百度網盤BaiduYunCacheFileV0.db數據庫研究_wqq1027的博客-CSDN博客_百度網盤數據庫最近研究了一下百度網盤的本地數據庫文件…

python 圖片轉文字錯誤_python3把base64字符串寫成圖片文件出錯

下面的代碼在python2下正常的,是一個微信圖標,文件md5是a1be719025844a1918ec6a338eaa8456我對python3不熟悉,不知道要怎么改#!/usr/bin/python3import base64def filePutContents(file, content):fp open(file, a)fp.write(content)fp.clos…

從業回憶錄,最后悔的事

被一篇文章誤導 我清楚地記得,在我畢業第一年,我看到了一篇關于程序員怎么學技術的文章,觀點是程序員要多學技術,文章引用了典故:“高筑墻,廣積糧,緩稱王”。當時讀這篇文章,感覺很有道理,認同了文章里的觀點。 這么些年,學了不少技術:C#、Asp.net、Java Web套餐、A…

kodexplorer開源網盤php程序配置解析

config/setting_user.php 追加內容(一下都是,注意不要使用中文引號、雙引號及分號) //【指定多語言只保留中文】 $GLOBALS[config][settings][language] zh-CN; //【自定義群組創建時自動新建的目錄】 $GLOBALS[config][settingSystemDefaul…

實現三元組表示的兩個稀疏矩陣的加法_K-BERT | 基于知識圖譜的語言表示模型

1.研究背景BERT曾被應用在多項NLP任務中,并且取得了很好的結果。它通過在大規模開放語料庫上進行預訓練以獲得通用的語言表示,然后在特定的下游任務中進行微調,吸收特定領域的知識。但這些模型在不同的領域執行知識驅動任務時,效果…

Excel單元格“刪除線”的添加與刪除

軟件:windows,WPS 點擊字體設計的小角標,進入更多設置,勾選“刪除線”

excel 表格復制到word后,寬超出word如何調整?

網上很多方法是用“選擇性粘貼----excel表格對象”,這個適用表格行數少的,不超過一頁word的。 步驟 復制到word里后,選中表格,右鍵---自動調整--選擇具體的調整方式。 調整后效果