Python2.7.8用于打印目录路径中所有文件的脚本。请帮忙解决

时间:2014-09-02 19:24:59

标签: python python-2.7

我是python的新手。

我正在编写一个脚本来询问用户目录路径。一旦提供, 我希望脚本列出目录中除了任何子目录之外的所有文件。

这是我到目前为止所拥有的。我似乎陷入困境,试图找到一种方法来测试,看看有问题的项目是目录还是文件。请帮忙。

#! /usr/bin/python

import os

dir_f = raw_input(" Plese enter directory path where you would like to have \
the files renamed \n" )

#print dir_f

os.chdir(dir_f)

#prints items in directory one line at a time. TEST section

while os.listdir(dir_f):
    if os.path.isdir(dir_f):
        continue
    else:
        print "\n".join(os.listdir(dir_f)) 

    # os.rename(src, dst) dont use this yet.

3 个答案:

答案 0 :(得分:3)

您可以尝试的简单代码,它们可以满足您的需求。

import os

folder = '/tmp/test'

for item in os.listdir('/tmp/test'):
    if not os.path.isdir(os.path.join(folder,item)):
         print item

答案 1 :(得分:0)

试试这个:我认为它符合您的意图。两个重要的变化:

  1. 我使用for循环代替whileread up on how this works!)
    • (一般来说,for循环是迭代Python中列表或对象集合的正确方法。)
  2. 您的版本明显错过了not中的if not os.path.isdir(...);您的版本将非目录视为目录,反之亦然
  3. 代码(已编辑以包含有关其内容的解释性消息):

    import os, os.path
    
    dir_f = raw_input(" Plese enter directory path where you would like to have \
    the files renamed \n" )
    
    #print dir_f
    
    os.chdir(dir_f)
    
    #prints items in directory one line at a time. TEST section
    
    for item in os.listdir(dir_f):
        if not os.path.isdir(os.path.join(dir_f,item)):
            print "this is not a directory: ", item
        else:
            print "this is a subdirectory: ", item
            print "... and it contains: ", ','.join(os.listdir(os.path.join(dir_f,item)))
    
        # os.rename(src, dst) dont use this yet.
    

答案 2 :(得分:-1)

这是我的脚本,其中包含Lovato建议的更改

#! /usr/bin/python

import os 





dir_f = raw_input(" Plese enter directory path where you would like to have \
the files renamed \n" )

#print dir_f

os.chdir(dir_f)


for item in os.listdir(dir_f):
    if not os.path.isdir(os.path.join(dir_f,item)):
                         print item