python - 当路径是没有文件名的路径时,Python listdir 函数不起作用
问题描述
我正在使用 os.path 列出目录内容。在我的代码中,无论作为字符串传递的路径是否具有文件名或者它只是一个路径,我都想这样做。如果它附加了文件名,则 lisdir 工作,如果没有,则它不起作用。
例如,如果它是 /home/me/Documents/file.jpg,那么它可以工作,如果它只是 /home/me/Documents,它什么也不做。
我尝试用不同的方法包装路径字符串,例如 join(path,"")、dirname(path) 和 path(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)
推荐阅读
- python - 为什么输入不是可调用对象?
- python-3.x - 在 XML 文件中查找嵌套标签并在数据框 Python 中转换它
- javascript - 每次我想发出获取请求时使用一个定义获取请求的函数(最佳实践)?
- php - php file_get_contents 没有文件名
- testing - 嗡嗡声游戏
- maven - maven 依赖项中的 @WebFilter 未被 Quarkus 拾取
- c - 静态变量如何区分初始化和赋值
- javascript - 未捕获的 ReferenceError:未在 HTMLFormElement 中定义 signInWithEmailAndPassword。
(index.js:61) (匿名)@index.js:61 - c# - iOS App 将用户凭据正确保存在文件/appmemory 中
- android - 仅允许在 Android Material 文本字段中输入数字