前言
在今天之前,我获取文件扩展名的方法就是导入os
模块,然后利用os.path.splitext(path)
的方法来获取的,但这样子其实并不是我想要的,今天好好学习了下字符串的常用方法,发现endswith()
就是我苦苦寻觅的,同时也对random.sample
方法有了进一步认识
过程示范
文件后缀名
题目:将指定路径下的jpg、zip、txt、py文件根据文件类型分别保存到列表中
代码实现
import os
path = 'D:/test/'
j_list = []
z_list = []
t_list = []
p_list = []
f_list = os.listdir(path)
for i in range(len(f_list)):
path1 = path + f_list[i]
if os.path.isfile(path1):
if os.path.splitext(path1)[1] == '.jpg':
j_list.append(f_list[i])
elif os.path.splitext(path1)[1] == '.zip':
z_list.append(f_list[i])
elif os.path.splitext(path1)[1] == '.txt':
t_list.append(f_list[i])
else:
p_list.append(f_list[i])
if __name__ == '__main__':
print(j_list)
print(z_list)
print(t_list)
print(p_list)
运行结果
['1.jpg', 'easygui.jpg']
['测试1.zip']
['测试1.txt', '测试2.txt']
['1.py']
代码实现
import os
j_list = []
z_list = []
t_list = []
p_list = []
f_list = os.listdir('D:/test')
for i in f_list:
if i.endswith('jpg'):
j_list.append(i)
elif i.endswith('zip'):
z_list.append(i)
elif i.endswith('txt'):
t_list.append(i)
elif i.endswith('py'):
p_list.append(i)
else:
pass
if __name__ == '__main__':
print(j_list)
print(z_list)
print(t_list)
print(p_list)
运行结果
['1.jpg', 'easygui.jpg']
['测试1.zip']
['测试1.txt', '测试2.txt']
['1.py']
个人认为第二种更简便且更顺应人类思维
生成不重复随机数
sample(seq,n) 从序列seq中选择n个随机且独立的元素
小结
字符串的endswith
方法能很好的解决文件后缀名如何确定问题,字符串的startswith
方法也很好使,同时对生成不重复随机数有了新的方法,总体还不错