日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python cook读书笔记第2章字符串和文本

發布時間:2023/11/30 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python cook读书笔记第2章字符串和文本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用多個界定符分割字符串

?

line = 'asdf fjdk; afed, fjek,asdf, foo'

import re

# line = re.split(r'[;,\s]\s*',line)
# print(line)
# ['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']

"""
當你使用 re.split() 函數時候,需要特別注意的是正則表達式中是否包含一個括
號捕獲分組。如果使用了捕獲分組,那么被匹配的文本也將出現在結果列表中。
"""

# line = re.split('(;|,|\s)\s*',line)
# print(line)
#['asdf', ' ', 'fjdk', ';', 'afed', ',', 'fjek', ',', 'asdf', ',', 'foo']
#使用分組會捕獲匹配的分割字符添加到列表中

value = line[::2]
print(value)
#['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
#使用切片步長來獲取被分割的元素

delimiters = line[1::2]
print(delimiters)
#[' ', ';', ',', ',', ',']
#使用切片獲取分隔符

print(list(zip(value,delimiters)))
#[('asdf', ' '), ('fjdk', ';'), ('afed', ','), ('fjek', ','), ('asdf', ',')]
#使用zip函數把分隔符和被分割的元素組成元組再用生成器表達式拼接成字符串

values = ''.join(v+delimiter for v,delimiter in zip(value,delimiters))
print(values)
#asdf fjdk;afed,fjek,asdf,
#把數據合并成了字符串

line = re.split('(?:,;|,|\s)\s*',line)
print(line)
#['asdf', 'fjdk;', 'afed', 'fjek', 'asdf', 'foo']
#如果一定要使用分組的形式分割數據,又不想保留分隔符可以使用?:丟棄分隔符


字符串開頭或結尾匹配

"""
檢查字符串開頭或結尾的一個簡單方法是使用 str.startswith() 或者是 str.endswith() 方法。
"""
# filename = 'spam.txt'
# print(filename.endswith('.txt'))
# #True
# print(filename.startswith('file:'))
# #False
# url = 'http://www.python.org'
# print(url.startswith('http:'))
#True

import os
filenames = os.listdir('.')
print(filenames)
#['admin.py', 'apps.py', 'migrations', 'models.py', 'tests.py', 'urls.py', 'views.py', '__init__.py', '__pycache__']
filename = [filename for filename in filenames if filename.endswith('.py')]
print(filename)
#['admin.py', 'apps.py', 'models.py', 'tests.py', 'urls.py', 'views.py', '__init__.py']
print(any(name.endswith('py') for name in filename))
#True
print(all(name.endswith('py') for name in filename))
#True

from urllib import request

def read_data(name):
if name.startswith(('http','https','ftp'),):
return request.urlopen(name).read()
else:
with open(name) as f:
return f.read()

print(read_data('https://www.baidu.com'))

"""
這個方法中必須要輸入一個元組作為參數。如果你恰巧有一個 list 或
者 set 類型的選擇項,要確保傳遞參數前先調用 tuple() 將其轉換為元組類型。
"""

choices = ['http:', 'ftp:']
url = 'http://www.python.org'

print(url.startswith(tuple(choices)))
#True

#也可以使用re的match模塊實現檢測

import re
print(re.match("(http:|https|ftp:)",url))
#<re.Match object; span=(0, 5), match='http:'>

"""
普通數據聚合相結合的時候 startswith() 和endswith() 方法是很不錯的。
"""

print(any(name.endswith(('.c','.h')) for name in os.listdir('.')))

#False
print(any(name.endswith(('.py','.h')) for name in os.listdir('.')))
#True

轉載于:https://www.cnblogs.com/louzi/p/10387729.html

總結

以上是生活随笔為你收集整理的python cook读书笔记第2章字符串和文本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。