1.split分割
基於re模塊和正則表達式對象的方法split(),以后再做學習
基於字符串的split()方法 :字符串對象的split()方法也只能處理非常簡單的情況,而且不支持多個分隔符,對分隔符周圍可能存在的空格也無能為力.當需要一些更為靈活的功能是,應該使用re.split()方法.
函數原型:str.split(s,num)[n]
s:表示指定的分隔符,不寫的話,默認是空格(’ ‘)。如果字符串中沒有給定的分隔符時,則把整個字符串作為列表的一個元素返回。
num:表示分割次數。如果指定了參數num,就會將字符串分割成num+1個子字符串,並且每一個子字符串可以賦給新的變量。
[n]:表示選取第n個分片,n表示返回的list中元素下標,從0開始的。
split()當不帶參數時以空格進行分割,不管空格在哪,或者有幾個.帶參數時,以該參數進行分割。
2.strip()方法用來從字符串的開始和結尾處去掉字符
lstrip()從左側開始去除字符,默認去除空格符,也可指定其他字符.
rstrip()從右側開始去除字符,默認去除空格符,也可指定其他字符.
>>>t = '----hello===='
>>>t.lstrip('-')
'hello====='
>>>t.strip('-=')
'hello'
*注意:去除字符的操作不會對位於字符串中間的任何文本起作用
>>>'s = hello world \n'
>>>s = s,strip()
>>>s
'hello world'
如果要對里面的空格執行某些操作,應該使用其他技巧.比如replace()方法或者正則表達式轉換.
>>>s.replace(' ','')
'helloworld'
>>>import re
>>>re.sub('\s+',' ',s)
'hello world'
通常會遇到的情況是將去除字符的操作同某些迭代操作結合起來,比如從文件中讀取文本行.如果是這樣的話,那就到了生成器表達式大顯身手的時候了:
with open(filename) as f:
lines = (line.strip() for line in f)
for line in lines:
這里表達式lines = (line.strip() for line in f)的作用是完成數據的轉換.即把原始數據中每一行開頭和結尾處的空格符去掉.
3.分解文件名的擴展名
a,b = os.path.splitext(fname)
a =
b =
擴展名是通過os.path.splitext函數提取出來的,
- root, extension = os.path.splitext(fname)
這樣,fname中的擴展名部分即.py被賦給變量extension,而其余部分則賦給了變量root。如果想得到不帶點號的擴展名的話,只需使用os.path.splitext(fname)[1][1:]即可。
假設一個文件名為f,其擴展名隨意,若想將其擴展名改為ext,可以使用下面的代碼:
- newfile = os.path.splitext(f)[0] + ext
下面是一個具體的示例:
- >>> f = ’/some/path/case2.data_source’
- >>> moviefile = os.path.basename(os.path.splitext(f)[0] + ’.mpg’)
- >>> moviefile
- ’case2.mpg’
4.splitlines用法
splitlines()方法返回一個字符串的所有行, 默認splitelines參數keepends為False,意思是不保留每行結尾的\n, 而keepends為True時,分割的每 一行里尾部會有\n
按行分割字符串,返回值為列表
去掉列表的方法:s1 =s.splitlines()[0]