Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中打开cmd并运行ipconfig_Python_Windows_Python 3.x - Fatal编程技术网

如何在python中打开cmd并运行ipconfig

如何在python中打开cmd并运行ipconfig,python,windows,python-3.x,Python,Windows,Python 3.x,我想写一个这样的脚本:打开cmd并运行“ipconfig”,然后复制我的ip并将其粘贴到文本文件中。 我写了剧本的开头,但没有得到我想要的结果。 以下是脚本的开头: import os f = os.system("cmd/ipconfig") 我得到的不是ipconfig输出,而是: Microsoft Windows [Version 10.0.15063] ???(c) 2017 Microsoft Corporation. �� ������� ������. C:\Users\ve

我想写一个这样的脚本:打开cmd并运行“ipconfig”,然后复制我的ip并将其粘贴到文本文件中。 我写了剧本的开头,但没有得到我想要的结果。 以下是脚本的开头:

import os
f = os.system("cmd/ipconfig")
我得到的不是ipconfig输出,而是:

Microsoft Windows [Version 10.0.15063]
???(c) 2017 Microsoft Corporation. �� ������� ������.

C:\Users\vespper\PycharmProjects\toturial>

如果您试图获取IP地址,请执行以下操作

import socket
def get_ip_address():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect(("8.8.8.8", 80))
    return s.getsockname()[0]

如果您确实希望以您正在尝试的方式执行
ipconfig
,请执行此操作以获得输出

import subprocess
proc = subprocess.check_output("ipconfig" ).decode('utf-8')
print (proc)

如果您试图获取IP地址,请执行以下操作

import socket
def get_ip_address():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect(("8.8.8.8", 80))
    return s.getsockname()[0]

如果您确实希望以您正在尝试的方式执行
ipconfig
,请执行此操作以获得输出

import subprocess
proc = subprocess.check_output("ipconfig" ).decode('utf-8')
print (proc)

这应该对你有好处

import os
os.system("ifconfig")

这应该对你有好处

import os
os.system("ifconfig")

有没有理由不直接运行命令<代码>操作系统(“ipconfig.exe”)。顺便说一句,
f
中的唯一值是退出值,
ipconfig.exe
将只打印到
stdout
。为此,您需要类似于
subprocess.run
的内容。最直接的问题是您没有为cmd.exe使用正确的命令行语法。它应该是
cmd/c ipconfig
,尽管如前所述,首先使用cmd.exe没有明显的意义。有没有理由不运行该命令<代码>操作系统(“ipconfig.exe”)。顺便说一句,
f
中的唯一值是退出值,
ipconfig.exe
将只打印到
stdout
。为此,您需要类似于
subprocess.run
的内容。最直接的问题是您没有为cmd.exe使用正确的命令行语法。它应该是
cmd/c ipconfig
,尽管如前所述,首先使用cmd.exe没有明显的意义。Hello@naren,我尝试了第二个代码,得到了“return\u compile(pattern,flags)。findall(string)TypeError:无法在类似字节的对象上使用字符串模式”。另外,如何为输出文件设置自己的名称?嘿,对不起,我忘了您正在运行python-3。在py3中,您需要解码为utf-8.ipconfig.exe,默认情况下,将带有CRLF行结尾的OEM编码文本写入管道。在Python 3.6+中,使用
output=check\u output('ipconfig',encoding='oem')
。Hello@naren,我尝试了第二个代码,得到了“return\u compile(pattern,flags)。findall(string)TypeError:无法在类似字节的对象上使用字符串模式”。另外,如何为输出文件设置自己的名称?嘿,对不起,我忘了您正在运行python-3。在py3中,您需要解码为utf-8.ipconfig.exe,默认情况下,将带有CRLF行结尾的OEM编码文本写入管道。在Python3.6+中,使用
output=check_output('ipconfig',encoding='oem')