python - 如何在文件夹中创建图像列表及其名称
问题描述
我正在使用以下代码创建带有 tif 扩展名的图像文件列表。代码的当前结果是一个包含 .tif 文件地址的列表。
raster_list=[]
def getFiles(path):
for file in os.listdir(path):
if file.endswith(".tif"):
raster_list.append(os.path.join(path, file))
getFiles(fpath)
print(raster_list)
len(raster_list)
结果:
['C:/dataset/test\\ras1.tif', 'C:dataset/test\\ras2.tif', 'C:/dataset/test\\ras3.tif', 'C:/dataset/test\\ras4.tif', 'C:/dataset/test\\ras5.tif']
如何修改代码以创建两个列表 a) 带有 .tif 的文件名 b) 文件名。这是示例:
raster_list = ['ras1.tif','ras2.tif','ras3.tif','ras4.tif', 'ras5.tif' ]
raster_name = ['ras1','ras2','ras3','ras4', 'ras5']
从解决方案编辑代码:
from os import path
raster_list=[]
def getFiles(path):
for file in os.listdir(path):
if file.endswith(".tif"):
raster_list.append(file) #remove the os.join, just take the file name
getFiles(fpath)
raster_names = [path.splitext(x)[0] for x in raster_list]
print(raster_list)
print(raster_names)
结果:
['ras1.tif', 'ras2.tif', 'ras3.tif', 'ras4.tif', 'ras5.tif']
['ras1', 'ras2', 'ras3', 'ras4', 'ras5']
解决方案
就个人而言,我会使用它,pathlib
因为它独立于操作系统且可靠:
>>> from pathlib import Path
>>> files = ['/tmp/ras1.tif', '/tmp/ras2.tif', '/tmp/ras3.tif']
>>> [Path(file).name for file in files]
['ras1.tif', 'ras2.tif', 'ras3.tif']
>>> [Path(file).stem for file in files]
['ras1', 'ras2', 'ras3']
推荐阅读
- javascript - 我的机器人找不到目录,即使它确实存在 discordjs
- slack-api - 已删除的预定消息仍在发送
- javascript - 比较 JSON 数组 nodeJS 中的单个对象
- python - 将 JustPy 部署到 Heroku
- javascript - 使用对象查找处理行时文件读取流的事件处理程序中的内存泄漏
- reactjs - 我正在尝试显示来自 TMDB API 的图像,但我的代码不起作用
- javascript - React JS 将日期从 yyyy-mm-dd 转换为 dd-mm-yyyy
- kotlin - 如何细化返回类型的泛型参数?
- reactjs - 使用react-player时如何在视频播放1分钟时显示一个按钮?
- node.js - nodejs / mongoDb:在一个请求中更新许多字段