首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试ping google.com时的多个回溯(最近一次调用)和FIleNotFoundError

问尝试ping google.com时的多个回溯(最近一次调用)和FIleNotFoundError
EN

Stack Overflow用户
提问于 2020-10-22 03:46:27
回答 1查看 69关注 0票数 0

我正在尝试做一个程序,为ping ip地址等。然而,每次我尝试ping一个Ip地址,我总是得到多个错误。我尝试了多种不同的方法来ping ip地址,但都不起作用。任何帮助都将不胜感激!:D

我的代码:

代码语言:javascript
复制
import time
import socket
import os
import subprocess

time.sleep(1)

print('    _  __        __')
time.sleep(0.3)
print('  / |/ /__  ___/ /__')
time.sleep(0.3)
print(' /    / _ \/ _  / -_)')
time.sleep(0.3)
print('/_/|_/\___/\_,_/\__/')

print('\n\n')

time.sleep(1)

while True:
    prompt = input('>>> ')

    if prompt == '/ip-?':
        print(socket.gethostbyname(socket.getfqdn()))
    elif prompt == '/hn-?':
        print(socket.gethostname())
    elif prompt == '/h':
        print('\n/ip-? --- IP ADDRESS')
        print('/hn-? --- HOST NAME')
        print('/e --- EXIT')
        print('\n')
    elif prompt == '/ip->':
        #THIS IS WHERE THE PROBLEM IS OCCURING
        out = subprocess.run(['ping', 'google.com'], capture_output=True)
        print(out.stdout.decode())
    elif prompt == '/e':
        break

回溯:

代码语言:javascript
复制
Traceback (most recent call last):
  File "D:\PYTHON\PROJECTS\everything.py", line 33, in <module>
    out = subprocess.run(['ping', 'google.com'], capture_output=True)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 489, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 1307, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-22 04:21:02

ping.exe应该在系统目录C:\WindowsSystem32中。如果它在没有路径的情况下无法运行,请添加它。您可以使用正斜杠来避免python使用\转义特殊字符时出现的潜在问题。

代码语言:javascript
复制
out = subprocess.run(['C:/Windows/System32/ping', 'google.com'], capture_output=True)

请注意,这将使您的程序只显示窗口。Linux/Mac也有"ping“程序,所以如果简单的"ping”不起作用,你可以把它当做后备。根据平台的不同,"ping“程序可能有不同的参数和输出,因此您可能需要首先检查平台版本,并实现代码的两个不同版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64470709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档