Python获取目录下所有视频并排序
时间: 2023-08-01 08:10:54 浏览: 62
您可以使用Python的os模块中的os.listdir()函数来获取指定目录下所有文件的文件名,然后使用字符串的.endswith()方法来筛选出所有视频文件。接下来使用Python的sorted()函数将所有视频文件名按照文件创建时间排序即可。
以下是一个示例代码:
```python
import os
# 指定要获取文件列表的目录路径
dir_path = '/path/to/directory'
# 获取目录下所有文件名
file_names = os.listdir(dir_path)
# 筛选出视频文件名
video_names = [name for name in file_names if name.endswith('.mp4') or name.endswith('.avi') or name.endswith('.mkv')]
# 按照文件创建时间排序
video_names = sorted(video_names, key=lambda x: os.path.getctime(os.path.join(dir_path, x)))
# 打印排序后的视频文件名
print(video_names)
```
请注意,这段代码中只筛选了三种视频格式,您可以根据需要修改筛选条件。另外,如果您需要按照文件修改时间或访问时间排序,可以使用os.path.getmtime()和os.path.getatime()函数来获取文件的修改时间和访问时间。
相关问题
python 获取目录下的txt文件的行数 按照行数排列文件
您好!关于您的问题,可以使用Python的os库来获取目录下的所有txt文件,然后用文件操作的方法遍历每个txt文件并统计行数,最后可以使用Python的sorted函数根据行数进行排序。
以下是样例代码:
```
import os
# 获取目录下所有txt文件
txt_files = [f for f in os.listdir('/path/to/directory') if f.endswith('.txt')]
# 遍历每个txt文件并统计行数
lines_dict = {}
for file in txt_files:
with open(file, 'r') as f:
lines = len(f.readlines())
lines_dict[file] = lines
# 根据行数排序文件
sorted_files = sorted(lines_dict.items(), key=lambda x: x[1], reverse=True)
# 输出排好序的文件
for file, lines in sorted_files:
print(file, lines)
```
希望能对您有所帮助!
用Python对 images 目录下的所有图片进行横向拼接,并进行保存
可以使用Pillow库来完成这个任务。以下是一个示例代码:
```python
from PIL import Image
import os
# 设置图片目录和输出文件名
img_dir = "images/"
output_file = "output.jpg"
# 获取图片列表并排序
img_list = [os.path.join(img_dir, f) for f in os.listdir(img_dir) if f.endswith(".jpg")]
img_list.sort()
# 打开第一张图片并获取宽度和高度
first_img = Image.open(img_list[0])
width, height = first_img.size
# 创建一张新的图片,宽度为所有图片的宽度之和,高度为第一张图片的高度
new_img = Image.new("RGB", (width * len(img_list), height))
# 将所有图片拼接到新图片上
x_offset = 0
for img_path in img_list:
img = Image.open(img_path)
new_img.paste(img, (x_offset, 0))
x_offset += width
# 保存新图片
new_img.save(output_file)
```
这段代码假定所有图片都是JPEG格式,并保存在名为“images”的目录下。你需要将代码中的“output.jpg”替换为你想要保存的输出文件名。注意,如果图片的宽度不相同,则可能需要对代码进行一些修改,以便在拼接时对齐图片。