python 使用列表推导式得到一个path下的所有csv文件,获取文件名字的构成,使用下划线为分隔符
时间: 2024-03-12 12:45:48 浏览: 47
可以使用以下列表推导式来获取指定路径下的所有csv文件名,并使用下划线作为分隔符:
```python
import os
path = "/your/path/here"
file_names = [f.replace(".csv", "").replace(" ", "_") for f in os.listdir(path) if f.endswith(".csv")]
```
这里使用 `os.listdir()` 函数来获取指定路径下的所有文件名,然后使用列表推导式取出所有以 `.csv` 结尾的文件名并将其去除后缀,同时使用 `replace()` 函数将文件名中的空格替换为下划线。最终得到的 `file_names` 列表即为所需结果。
相关问题
编写python脚本批量对CCPD base里面选2200张图片并且将图片名称的由分割符’-'分割的敌法各自分割并写到csv文件中
假设CCPD base的图片路径为`/path/to/ccpd_base`,以下是一个Python脚本的示例,可以实现你所需要的功能:
```python
import os
import csv
# 设置需要处理的图片数量
num_images = 2200
# 设置CCPD base的路径
ccpd_base_path = '/path/to/ccpd_base'
# 设置CSV文件的路径和名称
csv_path = '/path/to/output.csv'
# 创建CSV文件并写入表头
with open(csv_path, mode='w', newline='') as csv_file:
writer = csv.writer(csv_file)
writer.writerow(['Image Name', 'Province', 'City', 'Plate Number'])
# 遍历CCPD base中的图片并处理
with open(csv_path, mode='a', newline='') as csv_file:
writer = csv.writer(csv_file)
for i, filename in enumerate(os.listdir(ccpd_base_path)):
if i >= num_images:
break
if not filename.endswith('.jpg'):
continue
# 解析文件名
parts = filename.split('-')
province = parts[0]
city = parts[1]
plate_number = parts[2].replace('_', '')
# 写入CSV文件
writer.writerow([filename, province, city, plate_number])
```
该脚本首先会创建一个CSV文件,并写入表头(即第一行)。然后,它会遍历CCPD base中的所有图片,并解析每个文件名以获取省份、城市和车牌号码。最后,它会将每个文件名和解析结果写入CSV文件中。请注意,该脚本假定所有文件名都以`'-'`作为分隔符,并且车牌号码中的下划线(`'_'`)需要被移除。
阅读全文