Ⅰ 如何使用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服务器地址,最后点击“确定”