Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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与其他函数结合使用时不能工作_Python_Python 3.x_Pandas - Fatal编程技术网

为什么Python与其他函数结合使用时不能工作

为什么Python与其他函数结合使用时不能工作,python,python-3.x,pandas,Python,Python 3.x,Pandas,Python pandasread\u csv在单独编写时提供正确的输出,如下所示: import pandas as pd def bgp_neighbor_status(): data = pd.read_csv('E:\\Python-Scripts\\bgp-result.txt', delim_whitespace=True, header=None) for index, row in data.iterrows(): if row[9] == 'Do

Python pandas
read\u csv
在单独编写时提供正确的输出,如下所示:

import pandas as pd
def bgp_neighbor_status():
    data = pd.read_csv('E:\\Python-Scripts\\bgp-result.txt', delim_whitespace=True, header=None)
    for index, row in data.iterrows():
        if row[9] == 'Down' or row[9] == 'Idle' or row[9] == 'Active':
            print(f"Neighbor {row[0]} is down")
        else:
            pass

bgp_neighbor_status()
按预期显示的输出:

Neighbor 10.0.11.101 is down
但是,当我将同一个函数与类似的另一个函数组合时,我得到了错误:-pandas.errors.EmptyDataError:没有要从文件中解析的列

from __future__ import print_function
from netmiko import ConnectHandler
import pandas as pd

import sys
import time
import select
import paramiko
import re

bgp_result_file = open(r'E:\\Python-Scripts\\bgp-result.txt','w')
old_stdout = sys.stdout
sys.stdout = bgp_result_file
platform = 'cisco_ios'
username = 'javed'
password = 'cisco'

ip_add_file = open(r'E:\\Python-Scripts\\IPAddressList.txt', 'r')

def check_bgp(ip_add_file):

    for host in ip_add_file:
        host = host.rstrip('\n')
        connect = ConnectHandler(device_type=platform, ip=host, username=username, password=password)
        output = connect.send_command('terminal length 0')
        output = connect.send_command('enable')
        bgp_status = connect.send_command('show ip bgp summary | be N')
        print (bgp_status)


def bgp_neighbor_status():
    data = pd.read_csv('E:\\Python-Scripts\\bgp-result.txt', delim_whitespace=True, header=None)
    for index, row in data.iterrows():
        if row[9] == 'Down' or row[9] == 'Idle' or row[9] == 'Active':
            print(f"Neighbor {row[0]} is down")
        else:
            pass

check_bgp(ip_add_file)
bgp_neighbor_status()  

这一行就在顶部:

bgp\u result\u file=open(r'E:\\Python Scripts\\bgp result.txt',w')

该行在脚本开始时执行,基本上清除了文件。从文件中:

mode最常用的值是'r'用于读取,'w'用于写入(如果文件已经存在,则截断该文件),以及'a'用于追加(在某些Unix系统上,这意味着所有写入操作都会追加到文件的末尾,而不管当前查找位置如何)。[……]


如果文件已经存在,则截断该文件。

因为
bgp\u result\u file=open(r'E:\\Python Scripts\\bgp result.txt',w')
以写入模式打开该文件并在代码开头删除其全部内容谢谢您的回答,它在将“w”改为“w”后开始工作r+'