python 以逗号分割,忽略引号内的逗号

本文介绍Python中shlex模块的使用方法,特别是如何处理包含特殊字符的字符串分割问题,通过实例展示了如何配置shlex以正确解析带引号及空格的参数。

python 以逗号分割,忽略引号内的逗号

加posix=True 和不加posix=True 有区别

前两个是加和不加posix=True的对比,最后一个例子是以空格分割语句的例子lex.quotes = '"' 去掉效果一样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import shlex
str=shlex.shlex("ab,'cdsfd,sfsd',ewewq,5654",posix=True)
str.whitespace=','
str.whitesapce_split=True
b=list(str)
print  b
  
  
['ab', 'cdsfd,sfsd', 'ewewq', '5654']
  
  
import shlex
str=shlex.shlex("ab,'cdsfd,sfsd',ewewq,5654")
str.whitespace=','
str.whitesapce_split=True
b=list(str)
print b
  
['ab', "'cdsfd,sfsd'", 'ewewq', '5654']
  
  
import shlex
lex = shlex.shlex('''This string has "some double quotes" and 'some single quotes'.''')
lex.quotes = '"'
lex.whitespace_split = True
b=list(lex)
  
['This', 'string', 'has', '"some double quotes"', 'and', "'some", 'single', "quotes'."]
1
<span style="font-family:宋体, Arial;line-height:1;white-space:normal;"> </span>
1
<span style="color:#333333;font-family:Arial;font-size:14px;line-height:26px;white-space:normal;">在解析命令行参数的时候碰到python字符分割的问题,python中字符串分割默认都是在空格,但是我的参数中可能某个参数带有空格符,同时有双引号包围。</span>
1
2
3
4
5
<span style="font-family:宋体, Arial;line-height:1;white-space:normal;">
    <p style="color:#333333;font-family:Arial;font-size:14px;line-height:26px;white-space:normal;background-color:#FFFFFF;">
        最近的python中引入了支持正则分割的shlex模块,他能很好的处理空格符的问题。如下
    </p>
</span>
1
<span style="font-family:宋体, Arial;line-height:1;white-space:normal;">>>> import shlex</span>
1
2
>>> shlex.split('this is "a test"')
['this', 'is', 'a test']

转自:http://blog.chinaunix.net/uid-200142-id-3482629.html
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值