简体   繁体   English

txt文件中的python ping ip地址

[英]python ping ip adress from txt file

trhe code take the ip adress from txt. 这些代码采用txt中的IP地址。 when the server is online write in the new txt file. 当服务器在线时,写入新的txt文件。 But this code write only the last file in the txt file.And never time goes in the else. 但是这段代码只写了txt文件中的最后一个文件,其他时间再也没有了。 I need help 我需要帮助

tahnks 吊车


import os


file = open("IPs.txt","r+")

with open("IPs.txt","r") as file:

  for line in file:
     response =  os.system("ping   " + line)

     if response == 0:
        with open("IPsCheck.txt","w") as file:
            print(line)
            file.write(line)




     else:
        print("server not available ")

在此处输入图片说明

You need to open the output file (IPsCheck.txt) in append mode: "a+" 您需要以附加模式打开输出文件(IPsCheck.txt):“ a +”

See here for more https://www.guru99.com/reading-and-writing-files-in-python.html#2 有关更多信息,请参见此处https://www.guru99.com/reading-and-writing-files-in-python.html#2

The code below seems to work. 下面的代码似乎有效。 Change the DEBUG to False if you want to read the ips from the ips file. 如果要从ips文件读取ips,请将DEBUG更改为False。

import os

DEBUG = True

DEBUG_IPS = ['1.1.1.1', '8.8.8.8']

if DEBUG:
    ips = DEBUG_IPS
else:
    with open("IPs.txt", "r+") as ips_file:
        ips = [ip.strip() for ip in ips_file.readlines()]

with open("IPsCheck.txt", "w") as available_ips_file:
    for ip in ips:
        response = os.system('ping {}'.format(ip))
        if response == 0:
            available_ips_file.write(ip)
        else:
            print('server {} not available'.format(ip))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM