检查文件目录路径的优雅方法在Python 2.7中有效

时间:2016-08-08 23:25:20

标签: python python-2.7

我正在尝试读取特定目录下的所有文件的内容。如果路径名不以<a href="#inline1" rel="gallery" class="fancybox"><?php the_post_thumbnail('thumbnail', array('class' => 'aligncenter')); ?></a> <div id="inline1" style="width:400px;display: none;"> <?php the_post_thumbnail('thumbnail', array('class' => 'aligncenter')); ?><?php the_content(); ?> </div> 结尾,我发现它有点棘手,那么下面的代码将不起作用(由于/无效,将有I / O异常 - 缺少{{1} } 在中间)。这是一个代码示例,显示它何时起作用以及何时起作用,

我实际上可以通过使用endsWith检查pathName是否以pathName+f结尾,只是想知道在连接全名的路径和文件名时是否有更优雅的解决方案?

我的要求是,我希望输入pathName更灵活,以/结尾,而不是以/结尾。

使用Python 2.7。

\

1 个答案:

答案 0 :(得分:3)

您只需再次使用加入:

pathName = '/Users/foo/Downloads/test' # not working, since not ends with/
onlyfiles = [f for f in listdir(pathName) if isfile(join(pathName, f))]
for f in onlyfiles:
    with open(join(pathName, f), 'r') as content_file:
        content = content_file.read()
        print content

或者您可以使用 glob 并忘记加入:

from glob import glob

pathName = '/Users/foo/Downloads/test' # not working, since not ends with/

onlyfiles = (f for f in glob(join(pathName,"*")) if isfile(f))

for f in onlyfiles:
   with open(f, 'r') as content_file:

或将其与过滤器结合使用,以获得更简洁的解决方案:

onlyfiles = filter(isfile, glob(join(pathName,"*")))