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

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
= "font-family:宋体, Arial;line-height:1;white-space:normal;" > < / span>
1
= "color:#333333;font-family:Arial;font-size:14px;line-height:26px;white-space:normal;" >在解析命令行参数的时候碰到python字符分割的问题,python中字符串分割默认都是在空格,但是我的参数中可能某个参数带有空格符,同时有双引号包围。< / span>
1
2
3
4
5
= "font-family:宋体, Arial;line-height:1;white-space:normal;" >
    

= "color:#333333;font-family:Arial;font-size:14px;line-height:26px;white-space:normal;background-color:#FFFFFF;" >

         最近的python中引入了支持正则分割的shlex模块,他能很好的处理空格符的问题。如下
     < / p>
< / span>
1
= "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

你可能感兴趣的:(Python)