split函数python 未定义_Python字符串方法split()中的一道坑
初看这个方法还挺好用的,用来切割字符串真是的是非常方便,返回的字符串数组也非常容易处理。
于是乎看了一眼就应用到我的程序当中去了。
用来切割如下形式的字符串
s = 'Jul 24 21:38:25 luozw medusa.py[24707]: HOST=192.168.50.77 LOGIN=root PASSWORD=123456 SERVICE=ssh PORT=22'
month = s.split(' ')[0] #取月份
day = s.split(' ')[1] #取天数
……
成功的运行了。
后来设置到crontab中自动运行,也能成功运行,可是到了8月份的时候结果就不正常了。
自己跑到八月份的日志文件里看
Aug 1 21:38:25 luozw medusa.py[24707]: HOST=192.168.50.77 LOGIN=root PASSWORD=123456 SERVICE=ssh PORT=22
日志格式看起来也没问题,然后不得已去调试源程序,发现切割的字符串乱七八糟的。
将s.split(' ')直接打印出来看,马上就明白了:
['Aug', '', '2', '21:38:25', 'luozw', 'medusa.py[24707]:', 'HOST=192.168.50.77', 'LOGIN=root', 'PASSWORD=123456', 'SERVICE=ssh', 'PORT=22']
数组第二个元素是一个空字符串,它代表了一个空格,原来spilt方法是严格按照过滤参数设置的,不会感知连续过滤的参数。
Jul 24之间相距一个空格,但是Aug 1之间就相距两个空格,所以切割失败,导致后来取得数据发生错误。
此时有两个解决办法:
1.采用不带参数的split(),它会把所有空格(空格符、制表符、换行符)当作分隔符。
2.filter(None, s.split(' '))
第二种方法应用场景更多一些。
看看这个例子
a = 'hello++world!+'
如何取得'hello'和'world'呢?
>>>a.split('+')
['hello', '', 'world!', ''] #含有两个空字符串
>>>filter(None, a.split('+'))
['hello', 'world!']
关于filter()方法的使用说明:
filter(...)
filter(function or None, sequence) -> list, tuple, or string
Return those items of sequence for which function(item) is true. If
function is None, return the items that are true. If sequence is a tuple
or string, return the same type, else return a list.
总结的经验:对函数方法的使用不要过于想当然了,文档简易可得的话最好把函数说明看完。
split函数python 未定义_Python字符串方法split()中的一道坑相关推荐
- split函数python 未定义_Python之Split函数
python中的split()函数用来拆分一个字符串,通过指定的分隔符对字符串进行切割,返回切割后的字符串列表list. split()函数用法: str.split(str=' ',num = st ...
- split函数python 未定义_python split函数基本用法
Python split()方法描述: Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分割成 (num+1) 个子字符串.语法: str.split(st ...
- split函数python统计英文单词_Python实现统计英文单词个数及字符串分割代码
Python实现统计英文单词个数及字符串分割代码 这篇文章主要介绍了Python实现统计英文单词个数及字符串分割方法,本文分别给出代码实例,需要的朋友可以参考下 字符串分割 代码如下: str=&qu ...
- python调用函数出现未定义_python – 为什么函数参数之外的“self”会给出“未定义”的错误?...
看看这段代码: class MyClass(): # Why does this give me "NameError: name 'self' is not defined": ...
- isalpha函数 python怎么用_Python字符串| isalnum()和isalpha()方法以及示例
1)isalpha()方法 isalpha()如果字符串的所有字符都是字母(" A"至" Z"之间以及" a"至" z" ...
- anaconda警告python未激活_Python位于conda env中,但尚未在Windows virtual en中激活
我创建了一个Windows(10)Python虚拟环境(env3.7.3).当我打开一个在virtual env中激活的cmd窗口时,在virtual env中启动Python时会收到以下警告消息: ...
- python自关联_Django之Mode的外键自关联和引用未定义的Model方法
Django Model的外键自关联 在django的model定义中,有时需要某个Field引用当前定义的Model,比如一个部门(Department)的Model,它有一个字段是上级部门(sup ...
- ES6/02/创建对象,构造函数和原型,原型和原型链,this指向,类,ES5新增的方法,数组方法,回调函数,ES5新增的字符串方法,ES5中新增的对象方法
创建对象 1,利用new Object()创建对象 var obj1 =new Object(); 2,利用对象字面量创建对象 var obj2={}; 3,利用构造函数创建对象 function S ...
- Python 爬虫中国知网论文过程中遇到的坑及解决办法
假期,老师给布置了 Python 爬虫中国知网论文的任务,目前实现了登录和搜索功能,先写一下遇到的坑和解决办法吧. Python 爬虫中国知网论文过程中遇到的坑及解决办法 一. selenium 模块 ...
最新文章
- Linux安全管理:一,sshd配置
- java 线程崩溃_java语言中application异常退出和线程异常崩溃的捕获方法,并且在捕获的钩子方法中进行异常处理...
- namecheap教程
- java 一元一次方程求解_七年级一元一次方程概念和解法,掌握这些就够了!
- OpenGL 持久映射分形的实例
- JS-函数(匿名-自调用-回调)-递归
- 学习云计算学哪种编程语言_您应该学习哪种编程语言?
- java如何排除多余的依赖_Maven依赖排除 禁止依赖传递 取消依赖的方法 去除jar包中的不想要的依赖关系...
- mysql 游标中实现递归_mysql中实现递归查询?
- Unity延迟和重复调用方法
- DE29 Matrix Exponentials
- 航天信息金税盘接口 js 调用
- 系统架构师(十七)系统可靠性分析与设计
- 《菜鸟教程》C语言学习
- QTableView和QTableWidget的区别是什么?
- 如何提取pcap文件中的TCP流
- HTML/CSS网页制作-----家居网
- RocketMq客户端日志参数设置
- freemaker生成doc文档(特殊字符导致异常)
- 发那科服务器显示1,发那科31i系统401报警处理一例
热门文章
- 【小米笔试题】二分查找算法的变形
- input python_python input 详解
- sklearn朴素贝叶斯分类器_朴素贝叶斯原理
- Cpp 对象模型探索 / 虚基类表作用
- 启明云端1.54寸串口屏使用经验分享
- 乐鑫代理-启明云端分享ESP32系列教程之二:Linux搭建esp-idf环境
- 计算机软考中级网络工程师,如何复习计算机软考中级网络工程师更有效
- 求最大素数的c语言,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...
- VS Code阅读Android源码
- qt 进程打开excel_Qt QAxObject操作excel文件过程总结(转):(示例代码)