我是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.
答案 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)
试试这个:我认为它符合您的意图。两个重要的变化:
for
循环代替while
(read up on how this works!)
for
循环是迭代Python中列表或对象集合的正确方法。)not
中的if not os.path.isdir(...)
;您的版本将非目录视为目录,反之亦然代码(已编辑以包含有关其内容的解释性消息):
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