最近跑实验,记录一些常用的 Python
函数,便于自己复习和学习,仅用来学习。
os.path.join()
参考该文章 深度了解
在 Python
中,处理文件和目录路径是常见的任务。为了简化路径的拼接和操作,Python
提供了 os.path
模块,其中的 join
函数是一个非常重要且常用的函数。
os.path.join()
函数用于拼接多个路径字符串,生成一个新的路径字符串。它会根据操作系统的规范自动添加适当的路径分隔符。
import os
data_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
不同操作系统使用不同的路径分隔符,例如 Windows
使用反斜杠 \
,而 Unix
和 Mac
使用正斜杠 /
。 os.path.join
函数能够根据当前操作系统自动选择适当的路径分隔符。
使用 os.path.join
连接多个路径的例子,代码如下所示:
import os
data_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"
注意:如果最后一个路径(eg. video)为空,则生成的路径以一个 /
分隔符结尾。
os.path.basename
参考博文 os.path.basename
os.path.basename()
:返回 path
最后的文件名。若 path
以 /
或 \
结尾,则返回空值。
import os
path = '/Users/Data/data.csv'
print(path) # data.csv
file_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
split()
split()
是一个字符串方法,用于将一个字符串按照指定的分隔符进行切片,并返回一个包含切片后的子字符串的列表。如果不指定分隔符,默认以空格、换行和制表符为分隔符。如果指定了分隔次数,就会根据指定的次数进行切片。
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"]
zip()
zip()
是 Python
中最好用的内置类型之一,它可以接收多个可迭代对象参数,再返回一个迭代器,可以把不同可迭代对象的元素组合起来。函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 *
号操作符,可以将元组解压为列表。
基本用法:像拉链一样,将多个可迭代对象组合起来,然后可以用 for
循环依次取出,或者一次性将结果存入列表、元组或者字典之类的容器中。
object1=["name", "age", "message"]
object2=("Python猫", "618", "Hello")
for i, j in zip(object1, object2):
print(i, j)
# name Python猫
# age 618
# message Hello
它的参数并不要求是同一类的可迭代对象,因此可以有非常多的组合方式。
使用 zip()
,还可以实现对二维列表实现行列转换。
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)]
星号(*
)操作符可以解包(unpacking),即将 my_list
的元素(也是列表)解成多个参数给 zip()
,从而将 3
个列表重新组合。
enumerate()
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for
循环当中。
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
#下标默认从0开始
print(enumerate(seasons)) # [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
# 下标从1开始
print(enumerate(seasons, start=1)) # [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]