写一段python代码,以一个函数读取指定目录下的所有文件夹名输出为列表,在主函数中,将文件夹名中最后一个‘-’的后面的数字提取,若有一个‘-’取正值,若有一个‘--’取负值,所有数字输入新的列表
时间: 2024-10-13 13:05:24 浏览: 20
Python 读取指定文件夹下的所有图像方法
5星 · 资源好评率100%
为了实现这个功能,你可以创建两个函数:`get_folder_names` 和 `extract_numbers_from_names`。这里是一个示例代码:
```python
import os
def get_folder_names(directory):
"""
获取指定目录下的所有文件夹名字,并返回一个列表。
参数:
directory (str): 目录路径
返回:
folder_names (list): 包含文件夹名称的列表
"""
folder_names = []
for root, dirs, _ in os.walk(directory):
for dir_name in dirs:
folder_names.append(dir_name)
return folder_names
def extract_numbers_from_names(folder_names):
"""
提取文件夹名中最后一个'-'后面(如果存在)的数字,并考虑正负号。
参数:
folder_names (list): 文件夹名称列表
返回:
numbers_list (list): 包含数字的新列表
"""
numbers_list = []
for name in folder_names:
if '-' in name:
index = name.rfind('-')
number_str = name[index+1:]
if '--' in number_str:
number = -int(number_str.strip('--'))
else:
number = int(number_str)
numbers_list.append(number)
elif '--' in name:
index = name.rfind('--')
number_str = name[index+1:]
number = -int(number_str)
numbers_list.append(number)
else:
continue # 如果没有 '-', '--',跳过该文件夹
return numbers_list
# 示例
directory_path = '/path/to/your/directory'
folder_names = get_folder_names(directory_path)
numbers_list = extract_numbers_from_names(folder_names)
print(f"文件夹名列表: {folder_names}")
print(f"数字列表(包含正负): {numbers_list}")
```
请注意替换 `'/path/to/your/directory'` 为实际的目录路径。这段代码会递归地查找指定目录下的所有子文件夹,并提取它们名称中的最后一位数字(包括可能的正负号)。
阅读全文