- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 Python 3。我编写了两个程序。循环通过 csv 文件获取 Cisco 交换机的 IP 地址,登录,运行命令,并将每个结果输出到单独的文本文件。所以我最终得到了一些文本文件……每个开关一个。第二个程序使用 xlwt 将每个文本文件中的信息写入其在 Excel 中的工作表。
我的主要想法是我需要开发一份报告,显示服务中的端口和停止服务的端口。一旦我将这些导入到 Excel 中,我就可以编写一些公式来提取我需要的数据。但就目前情况而言,当我将其导入 Excel 时,我必须手动删除一些单元格,因为所有内容都没有对齐,这是因为名称列中某些单词之间的空格(我正在导入 Excel作为空格分隔)。我试图用字符串和列表方法(拆分、连接、切片等)做一些事情,但我无法得到我想要的。并且 Name 列在任何一种一致的约定中都没有标准化。我确实注意到,尽管名称实际上可能很长,但它会被截断为一定数量的字符。
理想情况下,首先删除前 4 行(最顶部有空行)和最后一行,然后对于端口和状态之间的任何内容,将其全部删除(完全删除包括标题的列)。
这是从交换机获取数据后文件的样子。
sw1#term length 0sw1#show interfaces statusPort Name Status Vlan Duplex Speed TypeGi0/1 Trunk to switch (a connected 1 a-full a-100 10/100/1000BaseTXGi0/2 Network augment pe connected 1 a-full a-1000 10/100/1000BaseTXGi0/3 connected 1 a-full a-1000 10/100/1000BaseTXGi0/4 connected 1 a-full a-100 10/100/1000BaseTXGi0/5 notconnect 1 auto auto Not PresentGi0/6 notconnect 1 auto auto Not PresentGi0/7 notconnect 1 auto auto Not PresentGi0/8 notconnect 1 auto auto Not PresentGi0/9 notconnect 1 auto auto Not PresentGi0/10 connected 1 a-full a-100 10/100/1000BaseTXGi0/11 notconnect 1 auto auto Not PresentGi0/12 connected 1 a-full a-100 10/100/1000BaseTXGi0/13 disabled 1 auto auto Not PresentGi0/14 disabled 1 auto auto Not PresentGi0/15 disabled 1 auto auto Not PresentGi0/16 disabled 1 auto auto Not Presentsw1#logout
我想要的最终结果如下。这应该允许行/列结构在导入 Excel 时保持完整。请注意,所有列信息均以空格分隔。我发现导入为固定宽度或由空格分隔并将连续空格视为一个检查似乎工作得很好。
Port Status Vlan Duplex Speed TypeGi0/1 connected 1 a-full a-100 10/100/1000BaseTXGi0/2 connected 1 a-full a-1000 10/100/1000BaseTXGi0/3 connected 1 a-full a-1000 10/100/1000BaseTXGi0/4 connected 1 a-full a-100 10/100/1000BaseTXGi0/5 notconnect 1 auto auto Not PresentGi0/6 notconnect 1 auto auto Not PresentGi0/7 notconnect 1 auto auto Not PresentGi0/8 notconnect 1 auto auto Not PresentGi0/9 notconnect 1 auto auto Not PresentGi0/10 connected 1 a-full a-100 10/100/1000BaseTXGi0/11 notconnect 1 auto auto Not PresentGi0/12 connected 1 a-full a-100 10/100/1000BaseTXGi0/13 disabled 1 auto auto Not PresentGi0/14 disabled 1 auto auto Not PresentGi0/15 disabled 1 auto auto Not PresentGi0/16 disabled 1 auto auto Not Present
任何指针将不胜感激。我在想正则表达式可能是有序的,但我需要一些关于如何构建它的帮助。我希望这不会太含糊。
删除了先前的更新并将其移至新线程
最佳答案
with open('file') as f:
lines = f.readlines()
lines = lines[-1:] + lines[2:-1]
for line in lines:
print line[0:11] + line[35:-1]
我认为这将大致满足您的需求;你可能需要稍微玩玩这些数字,因为我自己没有运行过它。它只使用列表(或字符串)索引:
lines[-1:] + lines[2:-1]
将最后一行放在第一位,并丢弃前两行; line[0:11] + line[35:-1]
排除你不想要的部分和最后的换行符。
更新如果你想写入一个新文件,而不是标准输出:
with open('infile') as in:
with open('outfile', 'w') as out:
lines = in.readlines()
...
print(line[0:6] + line[28:-1], file=out)
事实上,由于 readlines 一次读取所有内容,您可以这样做:
with open('infile') as in:
lines = in.readlines()
with open('outfile', 'w') as out:
for line in lines:
....
print(line[0:6] + line[28:-1], file=out)
因为不需要打开输入文件(它在 with
完成时关闭)。
关于python - 删除两个单词之间的所有字符并替换为空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10567386/
我正在处理一组标记为 160 个组的 173k 点。我想通过合并最接近的(到 9 或 10 个组)来减少组/集群的数量。我搜索过 sklearn 或类似的库,但没有成功。 我猜它只是通过 knn 聚类
我有一个扁平数字列表,这些数字逻辑上以 3 为一组,其中每个三元组是 (number, __ignored, flag[0 or 1]),例如: [7,56,1, 8,0,0, 2,0,0, 6,1,
我正在使用 pipenv 来管理我的包。我想编写一个 python 脚本来调用另一个使用不同虚拟环境(VE)的 python 脚本。 如何运行使用 VE1 的 python 脚本 1 并调用另一个 p
假设我有一个文件 script.py 位于 path = "foo/bar/script.py"。我正在寻找一种在 Python 中通过函数 execute_script() 从我的主要 Python
这听起来像是谜语或笑话,但实际上我还没有找到这个问题的答案。 问题到底是什么? 我想运行 2 个脚本。在第一个脚本中,我调用另一个脚本,但我希望它们继续并行,而不是在两个单独的线程中。主要是我不希望第
我有一个带有 python 2.5.5 的软件。我想发送一个命令,该命令将在 python 2.7.5 中启动一个脚本,然后继续执行该脚本。 我试过用 #!python2.7.5 和http://re
我在 python 命令行(使用 python 2.7)中,并尝试运行 Python 脚本。我的操作系统是 Windows 7。我已将我的目录设置为包含我所有脚本的文件夹,使用: os.chdir("
剧透:部分解决(见最后)。 以下是使用 Python 嵌入的代码示例: #include int main(int argc, char** argv) { Py_SetPythonHome
假设我有以下列表,对应于及时的股票价格: prices = [1, 3, 7, 10, 9, 8, 5, 3, 6, 8, 12, 9, 6, 10, 13, 8, 4, 11] 我想确定以下总体上最
所以我试图在选择某个单选按钮时更改此框架的背景。 我的框架位于一个类中,并且单选按钮的功能位于该类之外。 (这样我就可以在所有其他框架上调用它们。) 问题是每当我选择单选按钮时都会出现以下错误: co
我正在尝试将字符串与 python 中的正则表达式进行比较,如下所示, #!/usr/bin/env python3 import re str1 = "Expecting property name
考虑以下原型(prototype) Boost.Python 模块,该模块从单独的 C++ 头文件中引入类“D”。 /* file: a/b.cpp */ BOOST_PYTHON_MODULE(c)
如何编写一个程序来“识别函数调用的行号?” python 检查模块提供了定位行号的选项,但是, def di(): return inspect.currentframe().f_back.f_l
我已经使用 macports 安装了 Python 2.7,并且由于我的 $PATH 变量,这就是我输入 $ python 时得到的变量。然而,virtualenv 默认使用 Python 2.6,除
我只想问如何加快 python 上的 re.search 速度。 我有一个很长的字符串行,长度为 176861(即带有一些符号的字母数字字符),我使用此函数测试了该行以进行研究: def getExe
list1= [u'%app%%General%%Council%', u'%people%', u'%people%%Regional%%Council%%Mandate%', u'%ppp%%Ge
这个问题在这里已经有了答案: Is it Pythonic to use list comprehensions for just side effects? (7 个答案) 关闭 4 个月前。 告
我想用 Python 将两个列表组合成一个列表,方法如下: a = [1,1,1,2,2,2,3,3,3,3] b= ["Sun", "is", "bright", "June","and" ,"Ju
我正在运行带有最新 Boost 发行版 (1.55.0) 的 Mac OS X 10.8.4 (Darwin 12.4.0)。我正在按照说明 here构建包含在我的发行版中的教程 Boost-Pyth
学习 Python,我正在尝试制作一个没有任何第 3 方库的网络抓取工具,这样过程对我来说并没有简化,而且我知道我在做什么。我浏览了一些在线资源,但所有这些都让我对某些事情感到困惑。 html 看起来
我是一名优秀的程序员,十分优秀!