【问题标题】:pinging websites from array in a loop循环从数组ping网站
【发布时间】:2016-10-05 17:51:28
【问题描述】:
import subproccess
import sys

mylist= ['google.com','bbc.com','yahoo.com','gmail.com','hotmail.com',
         'amazon.com']

for ping in mylist(0,5):
    result = os.system("ping  %s" % ping)
    result.stdout=open("test.txt","w")
    result.stdout.close()

有人可以找出我的代码中的错误吗?我想从 cmd 终端调用这个脚本。此代码的目的是每次 ping 每个网站,然后将结果写入文本文件。我对 python 很陌生,我不知道如何构建合适的代码。

【问题讨论】:

  • 你能分享你遇到的具体错误吗?您的代码存在多个问题,包括缺少模块、缺少等号、遍历列表、文件的逻辑操作顺序。
  • 您的代码中到处都有错误,列表分配中的= 在哪里,mylist(1,6) 应该做什么或result.stdout=open("test.txt","w")?您似乎缺乏一些 Python 的基础知识,因此您可能需要阅读一两个教程。

标签: python arrays loops cmd ping


【解决方案1】:
  • 操作系统未导入
  • mylist = ['google.com','bbc.com','yahoo.com','gmail.com','hotmail.com','amazon.com']
  • 用于在 mylist 中 ping:
  • result = os.system("ping -c 1 %s" % ping)
  • f = open("test.txt","w") (在进入循环之前打开文件,否则每次循环迭代都会重写文件)

    import os
    
    mylist= ['google.com','bbc.com','yahoo.com','gmail.com','hotmail.com',
             'amazon.com']
    
    f = open("file.txt", 'w')
    for ping in mylist:
        result = os.system("ping -c 1 %s" % ping)
        f.write(ping + " : " +str(result) + "\n")
    f.close()
    

【讨论】:

  • 非常感谢。我会将 result.stdout.close() 留在循环中吗?这会将结果写入文件吗?
  • @user6367569 你应该再次看到python中的文件处理。您的文件处理代码在上面是错误的。顺便说一句,您应该将 close() 放在循环之外。我已经编辑了上面的完整代码。
  • 我试过了,但问题是它无法识别 f.write(ping + " : " +result + "\n") ping
  • @user6367569 我刚刚编辑了代码。有一个小错误。您应该自己调试一些小错误,而不是每次都在 stackoverflow 上询问。
猜你喜欢
  • 2016-01-21
  • 1970-01-01
  • 2011-09-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-17
  • 2012-08-24
  • 2014-01-28
  • 1970-01-01
相关资源
最近更新 更多