廊坊專業(yè)做網(wǎng)站十大免費(fèi)cms建站系統(tǒng)介紹
最近跑實(shí)驗(yàn),記錄一些常用的 Python
函數(shù),便于自己復(fù)習(xí)和學(xué)習(xí),僅用來(lái)學(xué)習(xí)。
1.Python 中的 os.path.join()
參考該文章 深度了解
在 Python
中,處理文件和目錄路徑是常見(jiàn)的任務(wù)。為了簡(jiǎn)化路徑的拼接和操作,Python
提供了 os.path
模塊,其中的 join
函數(shù)是一個(gè)非常重要且常用的函數(shù)。
os.path.join()
函數(shù)用于拼接多個(gè)路徑字符串,生成一個(gè)新的路徑字符串。它會(huì)根據(jù)操作系統(tǒng)的規(guī)范自動(dòng)添加適當(dāng)?shù)穆窂椒指舴?/p>
import osdata_path = "/home/ainianxin/savee_path"
audio = "sur.wav"audio_path = os.path.join(data_path, audio)
print(audio_path) # audio_path = /home/ainianxin/savee_path/sur.wav
不同操作系統(tǒng)使用不同的路徑分隔符,例如 Windows
使用反斜杠 \
,而 Unix
和 Mac
使用正斜杠 /
。 os.path.join
函數(shù)能夠根據(jù)當(dāng)前操作系統(tǒng)自動(dòng)選擇適當(dāng)?shù)穆窂椒指舴?br /> 使用 os.path.join
連接多個(gè)路徑的例子,代碼如下所示:
import osdata_path = "/home/ainianxin/savee_path"
actor = "Actor_4"
video = "sur.mp4"video_path = os.path.join(data_path, actor, audio)
print(video_path) # video_path = "/home/ainianxin/savee_path/Actor_4/sur.mp4"
注意:如果最后一個(gè)路徑(eg. video)為空,則生成的路徑以一個(gè) /
分隔符結(jié)尾。
2.Python 之 os.path.basename
參考博文 os.path.basename
os.path.basename()
:返回 path
最后的文件名。若 path
以 /
或 \
結(jié)尾,則返回空值。
import os
path = '/Users/Data/data.csv'
print(path) # data.csvfile_path = ["/home/xxx/aaa.txt","/home/xxx/bbb.txt"]for index, item in enumerate(file_path):print(os.path.basename(item)) # aaa.txt, bbb.txt
3.Python 之 split()
split()
是一個(gè)字符串方法,用于將一個(gè)字符串按照指定的分隔符進(jìn)行切片,并返回一個(gè)包含切片后的子字符串的列表。如果不指定分隔符,默認(rèn)以空格、換行和制表符為分隔符。如果指定了分隔次數(shù),就會(huì)根據(jù)指定的次數(shù)進(jìn)行切片。
video_path="/home/project_CFN_SR/ravdess_dataset/Actor_5/01-01-06-02-01-02-05.mp4"
video_pth = str(video_path).split("\")
print(video_pth) # ['', 'home', 'project_CFN_SR', 'ravdess_dataset', 'Actor_5', '01-01-06-02-01-02-05.mp4']
video_name = video_pth[-1].split(".")[0]
print(video_name) # 01-01-06-02-01-02-05
a = "I love China"
result = a.split()
print(result) # ["I", "love", "China"]
4.Python 之 zip()
zip()
是 Python
中最好用的內(nèi)置類型之一,它可以接收多個(gè)可迭代對(duì)象參數(shù),再返回一個(gè)迭代器,可以把不同可迭代對(duì)象的元素組合起來(lái)。函數(shù)用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表。如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長(zhǎng)度與最短的對(duì)象相同,利用 *
號(hào)操作符,可以將元組解壓為列表。
基本用法:像拉鏈一樣,將多個(gè)可迭代對(duì)象組合起來(lái),然后可以用 for
循環(huán)依次取出,或者一次性將結(jié)果存入列表、元組或者字典之類的容器中。
object1=["name", "age", "message"]
object2=("Python貓", "618", "Hello")
for i, j in zip(object1, object2):print(i, j)
# name Python貓
# age 618
# message Hello
它的參數(shù)并不要求是同一類的可迭代對(duì)象,因此可以有非常多的組合方式。
使用 zip()
,還可以實(shí)現(xiàn)對(duì)二維列表實(shí)現(xiàn)行列轉(zhuǎn)換。
my_list = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]
for i in zip(*my_list):print(i)
# (1, 4, 7)
# (2, 5, 8)
# (3, 6, 9)
print(list(zip(*my_list)))
# [(1, 4, 7),
# (2, 5, 8),
# (3, 6, 9)]
星號(hào)(*
)操作符可以解包(unpacking),即將 my_list
的元素(也是列表)解成多個(gè)參數(shù)給 zip()
,從而將 3
個(gè)列表重新組合。
5.Python 之 enumerate()
enumerate()
函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在 for
循環(huán)當(dāng)中。
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
#下標(biāo)默認(rèn)從0開(kāi)始
print(enumerate(seasons)) # [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
# 下標(biāo)從1開(kāi)始
print(enumerate(seasons, start=1)) # [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]