当路径是没有文件名的路径时,Python listdir 函数不起作用



我正在使用OS.Path列出目录内容。在我的代码中,我想这样做,无论路径作为字符串带有文件名还是只是路径。如果附有文件名,则Lisdir可以使用,如果不工作,则无法正常工作。

例如,如果它是/home/me/documents/file.jpg,则可以正常工作,如果它是/home/me/documents,它无能为力。

我尝试用不同的方法包装路径字符串,例如join(路径,"(,dirname(path(和路径(路径(将其转换为路径对象,因为它可能无法正常工作,因为它是一个字符串。

我的代码看起来像:

if isfile(path):
    contents = listdir(dirname(path))
else:
    contents = listdir(path)
print(contents)

我期望它在两种情况下都列出文件,但是当它是路径时都不是。

在另一个目录上测试:

chris@DJANGO-DEV-1:~/Documents/mydir$ ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt
In [2]: filecleanup("/home/chris/Documents/mydir/file1.txt")                                        
/home/chris/Documents/mydir/file1.txt
/home/chris/Documents/mydir
['file4.txt', 'file1.txt', 'file3.txt', 'file5.txt', 'file2.txt']
In [3]: filecleanup("/home/chris/Documents/mydir")                                                  
[LISTS DIRECTORY BELOW]
In [4]: filecleanup("/home/chris/Documents/mydir/")                                                 
['file4.txt', 'file1.txt', 'file3.txt', 'file5.txt', 'file2.txt']

尝试:

if isfile(path):
    contents = listdir(os.path.split(path)[0])
else:
    contents = listdir(path)
print(contents)

相关内容

  • 没有找到相关文章

最新更新