我正在使用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)