目录列表在python [英] directory listing in python
问题描述
所以,我必须读取这个文件的每一行。我尝试过以下代码。
def listFilesMain (dirpath):
for dirname,dirnames,os.walk(dirpath)中的文件名:
dirnames中的subdirname:
os.path.join(dirname,subdirname)
文件名中的文件名:
fPath = os.path.join(dirname,filename)
fileListMain.append(fPath)
只有当我尝试从子目录运行我的程序,但是如果我尝试从主目录运行,则不起作用。这里出了什么问题?
任何一种帮助将不胜感激。谢谢!
这样做如何:
code> def list_files(dirpath):
files = []
for dirname,dirnames,os.walk(dirpath)中的文件名:
文件+ = [os.path.join (dirname,filename)文件名中的文件名]
返回文件
你也可以这样做作为一个生成器,所以列表不是完整存储的:
def list_files(dirpath ):
for dirname,dirnames,os.walk(dirpath)中的文件名:
文件名中的文件名:
yield os.path.join(dirname,filename)
最后,您可能需要执行绝对路径:
def list_files(dirpath):
dirpath = os.path.abspath(dirpath)
for dirname,dirnames,os.walk(dirpath)中的文件名:
文件名中的文件名:
yield os.path.join(dirname,filename)
所有这些都可以用以下行来调用:
code> for filePath in list_files(dirpath):
#检查文件是否是XML文件。
#然后处理文件。
I am getting trouble with directory listing.Suppose, I have a directory with some subdirectory(named as a-z, 0-9, %, -).In each subdirectory, I have some related xml files. So, I have to read each lines of this files.I have tried with the following code.
def listFilesMain(dirpath):
for dirname, dirnames, filenames in os.walk(dirpath):
for subdirname in dirnames:
os.path.join(dirname, subdirname)
for filename in filenames:
fPath = os.path.join(dirname, filename)
fileListMain.append(fPath)
It works only if I tried to run my program from subdirectory, but no results if I tried to run from main directory. What's going wrong here? Any kind of help will be greatly appreciated. Thanks!
How about this:
def list_files(dirpath):
files = []
for dirname, dirnames, filenames in os.walk(dirpath):
files += [os.path.join(dirname, filename) for filename in filenames]
return files
You could also do this as a generator, so the list isn't stored in its entirety:
def list_files(dirpath):
for dirname, dirnames, filenames in os.walk(dirpath):
for filename in filenames:
yield os.path.join(dirname, filename)
Finally, you might want to enforce absolute paths:
def list_files(dirpath):
dirpath = os.path.abspath(dirpath)
for dirname, dirnames, filenames in os.walk(dirpath):
for filename in filenames:
yield os.path.join(dirname, filename)
All of these can be called with a line like:
for filePath in list_files(dirpath):
# Check that the file is an XML file.
# Then handle the file.
这篇关于目录列表在python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!