Ⅰ 如何使用python3讀寫INI配置文件
import configparser
# 生成config對象
conf =configparser.ConfigParser()
# 用config對象讀取配置文件
conf.read("xxx.ini")
#從ini配置文件中獲取信息
a=conf.get("xx","yy")
print(a) 結果為: zz
xxx.ini
[xx]
yy=zz
Ⅱ python,os.popen 打包後出現問題
你打包成exe後,命令行應該是pyinstller -Fw xxx.py
你加上了w參數也就是把console設置成了flase;那麼os.popen()或者subprocess.popen()執行的時候沒有載體,你只有把console設置成true,也就是命令改為pyinstaller -F xxx.py,這樣你的os.popen()可執行,也能獲得返回值。
Ⅲ 為什麼用python獲取mac地址會變動
首先聲明,我本人還沒有研究出來問題的究竟。此處只是寫下我本人的一點小心得,大家一起進步。
因為我發現,使用uuid庫得到的mac地址,總有最後一位不對。所以,我就查看了python官方的uuid文檔,找到了問題的關鍵是調用UUID()的時候,會調用getnode()函數以得到物理地址。
這個是getnode()函數的定義:
我把它摘出來,考到下面。
def getnode(*, getters=None):
"""Get the hardware address as a 48-bit positive integer.
The first time this runs, it may launch a separate program, which could
be quite slow. If all attempts to obtain the hardware address fail, we
choose a random 48-bit number with its eighth bit set to 1 as recommended
in RFC 4122.
"""
global _node
if _node is not None:
return _node
if sys.platform == 'win32':
getters = _NODE_GETTERS_WIN32
else:
getters = _NODE_GETTERS_UNIX
for getter in getters + [_random_getnode]:
try:
_node = getter()
except:
continue
if (_node is not None) and (0 <= _node < (1 << 48)):
return _node
assert False, '_random_getnode() returned invalid value: {}'.format(_node)
我正在試圖通過研究這個問題來試圖研究。但同樣,我覺得我們可以直接讓python調用系統庫,從而執行系統自帶的命令:(類似於windows下cmd裡面"ipconfig -all"命令,或者ubuntu下terminal中"ifconfig"命令)。實現物理地址。之後,根據「短時間內該機器的網卡不會出現過大的變動這個前提」,我們可以根據返回內容,切片出我們需要的部分即可。
Ⅳ 如何在Python中執行DOS命令
關於python調用cmd命令,主要介紹兩種方式:
一、Python的OS模塊
OS模塊調用CMD命令有兩種方式:os.system(),os.popen()。 都是用當前進程來調用。
1、os.system()
a、簡單粗暴的執行cmd指令
b、返回結果為0表示執行成功,無法獲取命令輸出的內容,本在cmd輸出的內容會直接在控制台輸出。
c、當命令運行結束後接著往下面執行程序(同步阻塞式)。用法如:os.system("ipconfig")。
2、os.popen()
a、能獲取DOS命令輸出的內容。
b、os.popen()返回的是一個file對象,那麼可以跟打開文件一樣操作,r是以讀的方式打開。
c、當命令運行結束後接著往下面執行程序(同步阻塞式)。
注意:os.popen() 方法用於從一個命令打開一個讀寫管道,在Unix,Windows中有效。
用法如:
with os.popen(r"adb devices","r")as f:
text = f.read()
print(text)# cmd輸出結果
二、管道subprocess模塊
a、在當前進程下產生子進程。
b、用wait()函數等待結果(非同步非阻塞式)。
【方法1】
result = subprocess.check_output(r'adb devices') ## 命令執行的輸出結果放到了result里
print(result)
【方法2】
process = subprocess.Popen(r'adb devices',shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
command_output = process.stdout.read().decode('gbk')
print(command_output)
Notices:
有些命令行是非同步執行的不會馬上返回輸出,所以有時候我們要先等這個命令行執行完畢才能從stdout讀出來數據。這個時候要加上
process.wait()
我的GitHub
Ⅳ python網頁打不開
一、清除DNS解析緩存
關於電腦網頁打不開怎麼回事的問題,系統一般會緩存平時常用的DNS地址,這樣能加速對網路的快速訪問,但有時候這些DNS地址由於某種原因導致不正常,這會使網頁無法正常打開,就會導致網頁無法打開。清楚DNS緩存後一般就能解決問題了。
步驟1、按住快捷鍵「Windows+R鍵」,然後在彈出的對話框中輸入「CMD」,再按 Enter鍵
步驟2、在新彈出的命令提示符窗口中輸入「ipconfig /displaydns」,便可查看到系統之前使用過的DNS地址
步驟3、再輸入命令「ipconfig /flushdns」。該命令的主要作用是清楚DNS解析緩存
步驟4、再成功刷新DNS解析緩存後,重新打開瀏覽器,打開網頁是否能正常打開網頁了呢?
二、手動設置DNS解析伺服器
若清除系統DNS解析緩存後,還不能正常打開網頁,那就有可能是當前系統使用的DNS解析伺服器出故障了。一般情況下,上網都是通過路由器自動獲取IP地址和DNS伺服器地址,所以接下來要手動設置系統的DNS解析伺服器地址。
步驟1、打開控制面板→查看網路狀態和任務→更改適配器設置;
步驟2、找到網路連接→右鍵屬性→進入本地連接屬性設置頁面
步驟3、在網路連接屬性窗口中,找到 Internet協議版本4(TCP/IPv4),然後點擊「屬性」
步驟4、在Internet協議版本4(TCP/IPv4)的屬性設置窗口中,我們選擇「使用下面的DNS伺服器地址」,並且在下面的DNS伺服器地址欄中輸入相應的DNS伺服器地址,最後點擊「確定」