我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python split多个分隔符

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python split多个分隔符

1.split不支持同时使用多种字符做分隔符,如果想实现这样的效果,可以用re,例如:

>>> s = 'Hello!This?Is!What?I!Want'
>>> s
'Hello!This?Is!What?I!Want'
>>> re.split('[!?]',s)
['Hello', 'This', 'Is', 'What', 'I', 'Want']


i = "25 192.168.19.32 192.168.1.30 [2014.09.28 09:01:35]env -i X='() { (a)=>\' bash -c 'echo date'; cat echo"


>>> re.split(r'[ \[\]]',i)

['25', '192.168.19.32', '192.168.1.30', '', '2014.09.28', '09:01:35', 'env', '-i

', "X='()", '{', "(a)=>'", 'bash', '-c', "'echo", "date';", 'cat', 'echo']


>>> re.findall(r'[\w.:]+',i)

['25', '192.168.19.32', '192.168.1.30', '2014.09.28', '09:01:35', 'env', 'i', 'X

', 'a', 'bash', 'c', 'echo', 'date', 'cat', 'echo']


>>> re.findall(r'[^]^[\s]+',i)

['25', '192.168.19.32', '192.168.1.30', '2014.09.28', '09:01:35', 'env', '-i', "

X='()", '{', "(a)=>'", 'bash', '-c', "'echo", "date';", 'cat', 'echo']


2.例子

test.txt:

abcdstr1

astr2m supernbajack

jordon


#coding: utf-8
import re

def split_on_separators(original, separators):    
    # 这个是用正则实现的,可能不满足要求,不过非常简单
    # return filter(lambda x:x.strip(), re.split(r"[%s]" % separators, original))
    
    result = [original]
    for sep in separators:
        temp = []
        for r in result:
            temp.extend(filter(lambda x:x.strip(), r.split(sep)))
        result = temp
    return result

if __name__ == "__main__":
    line = open('test.txt','r').read()
    print split_on_separators(line, "\t\n")
    #print split_on_separators("a\tb\nc\tdstr1\nastr2 a\tlisa", "\t\n")

打印结果:

['a', 'b', 'c', 'dstr1', 'astr2', 'm super', 'nba', 'jack', 'jordon']


————————————————————

for r in result:
            temp.extend(filter(lambda x:x.strip(), r.split(sep)))

对这句的理解:

>>> a = ' 123\ra\tabc'
>>> a.strip()
'123\ra\tabc'
>>>filter(lambda x:x.strip(),' 123\ra\tabc')
'123aabc'


>>> filter(lambda x:x.strip(),'a\tb\nc\tdstr1\nastr2 a\tlisa')
'abcdstr1astr2alisa'
>>> b = filter(lambda x:x.strip(),'[a\tb\nc\tdstr1\nastr2 a\tlisa]')
>>> b
'[abcdstr1astr2alisa]'

>>> temp = []
>>> temp.extend(filter(lambda x:x.strip(),'a'.split('\n\t')))
>>> temp
['a']
>>> temp
['a']
>>> temp.extend(filter(lambda x:x.strip(),'str1'.split('\n\t')))
>>> temp
['a', 'str1']
>>> temp.extend(filter(lambda x:x.strip(),'str2'))
>>> temp
['a', 'str1', 's', 't', 'r', '2']


>>> temp = []
>>> temp.extend(filter(lambda x:x.strip(),' 123\ra\tabc'))
>>> temp
['1', '2', '3', 'a', 'a', 'b', 'c']
>>> temp.extend(filter(lambda x:x.strip(),' 123\ra\tabc'.split('\n\t')))
>>> temp
['1', '2', '3', 'a', 'a', 'b', 'c', ' 123\ra\tabc']


——————————————————————————————————

上面例子的应用,将含有多列的普通文本写到excel中(本例split分隔符为空格和\n):

#coding: utf-8
import re,xlrd,xlwt

def split_on_separators(original, separators):    
    # 这个是用正则实现的,可能不满足要求,不过非常简单
    # return filter(lambda x:x.strip(), re.split(r"[%s]" % separators, original))
    
    result = [original]
    for sep in separators:
        temp = []
        for r in result:
            temp.extend(filter(lambda x:x.strip(), r.split(sep)))
        result = temp
    return result

line = open('ex.txt','r').read()
lisa = split_on_separators(line, " \n")


def wexcel(infile,outefile):
    buf = lisa
    print buf

    w=xlwt.Workbook()
    sheet=w.add_sheet('sheet1')
    for i in range(len(buf)):
        print buf[i]
        sheet.write(i,0,buf[i].decode('utf8'))
    w.save(outefile)
       
wexcel('ex.txt','ex.xls')

打印结果(ex.txt写到ex.xls中):

wKioL1N-7Oeit1lJAABQlJY_AEc770.jpg


ex.txt:

/                   24%

/backup             62%

/project            20%

memory           26.16%


————————————————后续———————————————


test.txt:


/                   24%

/backup             62%

/project            20%

memory           26.16%


line = file('D:/python27/test.txt','r').read()


>>> line.split('\n')

['/                   24%', '/backup             62%', '/project            20%'

, 'memory           26.16%']


>>> line.split()

['/', '24%', '/backup', '62%', '/project', '20%', 'memory', '26.16%']


>>> filter(lambda x:x.strip(),line.split())

['/', '24%', '/backup', '62%', '/project', '20%', 'memory', '26.16%']


>>> for i in [line]:

...     print i.split('\n')

...

['/                   24%', '/backup             62%', '/project            20%'

, 'memory           26.16%']


>>> for i in [line]:

...     print filter(lambda x:x.strip(), i.split('\n'))

...

['/                   24%', '/backup             62%', '/project            20%'



>>> filter(lambda x:x.strip(),line)

'/24%/backup62%/project20%memory26.16%'




>>> for i in line.split('\n'):

...     for sep in i.split(' '):

...             temp = []

...             temp.extend(filter(lambda x:x.strip(),i.split(' ')))

...     print temp

...

['/', '24%']

['/backup', '62%']

['/project', '20%']

['memory', '26.16%']



>>> for i in line.split('\n'):

...     for sep in i.split(' '):

...             temp = []

...             temp.extend(filter(lambda x:x.strip(),sep.split(' ')))

...     print sep

...

24%

62%

20%

26.16%


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python split多个分隔符

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python split多个分隔符

1.split不支持同时使用多种字符做分隔符,如果想实现这样的效果,可以用re,例如:>>> s = 'Hello!This?Is!What?I!Want'>>> s'Hello!This?Is!What?I!Want'>>> re.spl
2023-01-31

Python字符串怎么使用多个分隔符分割成列表

本篇内容介绍了“Python字符串怎么使用多个分隔符分割成列表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python 的字符串默认是有一
2023-07-05

Python中拆分具有多个分隔符的字符串方法实例

str.split()是Python中字符串类型的一个方法,可以用来将字符串按照指定的分隔符分割成多个子字符串,这篇文章主要给大家介绍了关于Python中拆分具有多个分隔符的字符串的相关资料,需要的朋友可以参考下
2023-05-18

JavaScript如何在多个分隔符上分割字符串

这篇文章主要为大家展示了“JavaScript如何在多个分隔符上分割字符串”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何在多个分隔符上分割字符串”这篇文章吧。如何在多个分
2023-06-27

Python 字符串使用多个分隔符分割成列表的2种方法

本文主要介绍了Python 字符串使用多个分隔符分割成列表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-14

python常用操作之使用多个界定符(分隔符)分割字符串的方法实例

在使用Python处理字符串的时候,有时候会需要分割字符,下面这篇文章主要给大家介绍了关于python常用操作之使用多个界定符(分隔符)分割字符串的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
2023-01-09

Python中如何针对任意多的分隔符进行拆分字符串

这篇文章给大家介绍Python中如何针对任意多的分隔符进行拆分字符串,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。我们需要将字符串拆分为不同的字段,但是分隔符(以及分隔符之间的空格)在整个字符串中并不一致。字符串对象的
2023-06-02

在 MySQL 中,如何将两个或多个字符串与分隔符组合在一起?

在 MySQL 中,我们可以使用 CONCAT_WS() 函数将两个或多个字符串与分隔符组合在一起。该函数的语法为CONCAT_WS(Separator, String1,String2,…,StringN)这里,CONCAT_WS函数的参
2023-10-22

mysql逗号分隔字符串成多行数据

SELECT     其他字段,     SUBSTRING_INDEX( SUBSTRING_INDEX( a."逗号分隔字段", ",", b.help_topic_id + 1 ), ",",- 1 ) AS "分拆后字段"  FROM     `表`
mysql逗号分隔字符串成多行数据
2017-05-16

如何使用Python的split()函数拆分字符串

如何使用Python的split()函数拆分字符串,需要具体代码示例在Python编程中,字符串是一种非常常见的数据类型。而在处理字符串操作时,有时需要将一个字符串拆分成多个部分,这时就可以使用Python中的split()函数来实现。sp
如何使用Python的split()函数拆分字符串
2023-11-18

python spilt()分隔字符串的实现示例

1 spilt() 方法作用 通过指定分隔符对字符串进行分隔 注意要拆分的字符串需要要一定规律的分隔符 ,比如"Python is a good language" 这个字符串中间都有个空格,那么我们可以通过这个空格来分隔这个字符串 2
2022-06-02

怎么在python中使用split()函数分割字符串

怎么在python中使用split()函数分割字符串?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python的数据类型有哪些?python的数据类型:1. 数字类型,包括
2023-06-14

Pandas使用分隔符或正则表达式将字符串拆分为多列

本文主要介绍了Pandas使用分隔符或正则表达式将字符串拆分为多列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录