首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >需要使用os.walk()指定特定文件的路径

需要使用os.walk()指定特定文件的路径
EN

Stack Overflow用户
提问于 2013-05-09 23:25:33
回答 3查看 74.7K关注 0票数 39

我在试着进行一些地理处理。我的任务是找到一个目录中的所有shapefile,然后在该目录中找到该shapefile的完整路径名。我可以获取shapefile的名称,但我不知道如何获取该shapefile的完整路径名。

代码语言:javascript
运行
复制
shpfiles = []
for path, subdirs, files in os.walk(path):
    for x in files:
        if x.endswith(".shp") == True:
            shpfiles.append[x]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-09 23:27:48

os.walk提供目录的路径作为循环中的第一个值,只需使用os.path.join()创建完整的文件名:

代码语言:javascript
运行
复制
shpfiles = []
for dirpath, subdirs, files in os.walk(path):
    for x in files:
        if x.endswith(".shp"):
            shpfiles.append(os.path.join(dirpath, x))

我将循环中的path重命名为dirpath,以避免与您已经传递给os.walk()path变量冲突。

请注意,您不需要测试.endswith() == True的结果;if已经为您完成了测试,== True部分是完全多余的。

您可以使用.extend()和生成器表达式来使上面的代码更紧凑:

代码语言:javascript
运行
复制
shpfiles = []
for dirpath, subdirs, files in os.walk(path):
    shpfiles.extend(os.path.join(dirpath, x) for x in files if x.endswith(".shp"))

或者甚至作为一个列表理解:

代码语言:javascript
运行
复制
shpfiles = [os.path.join(d, x)
            for d, dirs, files in os.walk(path)
            for x in files if x.endswith(".shp")]
票数 94
EN

Stack Overflow用户

发布于 2013-05-09 23:31:41

看起来os.path.abspath(finename)可以工作了。请试一试。

代码语言:javascript
运行
复制
shpfiles = []
for path, subdirs, files in os.walk(path):
    for x in files:
        if x.endswith(".shp") == True:
            shpfiles.append(os.path.join(path, x))
票数 0
EN

Stack Overflow用户

发布于 2013-05-09 23:36:17

为什么不是import glob呢?

代码语言:javascript
运行
复制
import glob 

print(glob.glob('F:\OTHERS\PHOTOS\Panama\\mai13*\\*.jpg') )

我得到了我想要的所有jpeg,绝对路径

代码语言:javascript
运行
复制
>>> 
['F:\\OTHERS\\PHOTOS\\Panama\\mai13\\03052013271.jpg', 
'F:\\OTHERS\\PHOTOS\\Panama\\mai13\\05052013272.jpg', 
'F:\\OTHERS\\PHOTOS\\Panama\\mai13\\05052013273.jpg']
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16465399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档