- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试这样做:
import os
[x for x in os.listdir('.') if os.path.isfile(x)]
[x for x in os.listdir('dirname') if os.path.isfile(x)]
[x for x in os.listdir(os.path.abspath('dirname')) if os.path.isfile(os.path.abspath(x))]
第一行有效:
[x for x in os.listdir('.') if os.path.isfile(x)]
但接下来的两个:
[x for x in os.listdir('dirname') if os.path.isfile(x)]
和
[x for x in os.listdir(os.path.abspath('dirname')) if os.path.isfile(os.path.abspath(x))]
只输出[]
为什么?
最佳答案
因为需要加入dirname
和x
,os.listdir()
直接列出内容,内容没有完整路径。
例子-
[x for x in os.listdir('dirname') if os.path.isfile(os.path.join('dirname',x))]
当没有给出完整路径时,os.path.isfile()
在当前目录中搜索,因此当您将 '.'
给 os .listdir()
你会得到一个正确的列表。
例子-
假设某个文件夹 - /a/b/c
- 包含文件 - x
和 y
。
当你执行 - os.listdir('/a/b/c')
时,返回的列表看起来像 -
['x','y']
即使您在 os.listdir()
中给出绝对路径,列表中返回的文件也将具有该目录的相对路径。您需要手动加入 dir 和 x
以获得正确的结果。
在您的第三个示例中,它不起作用,因为 os.path.abspath()
也适用于当前目录,因此如果您执行类似 -
os.path.abspath('somefile')
产生的结果将是 - /path/to/current/directory/somefile
- 它不会验证那是否是一个真实的文件/目录。
在documentation中明确说明(强调我的)-
os.path.abspath(path)
Return a normalized absolutized version of the pathname path. On most platforms, this is equivalent to calling the function normpath() as follows:
normpath(join(os.getcwd(), path))
.
其中 os.getcwd()
返回当前工作目录的路径。
关于python - os.path.isfile() 不起作用。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32157127/
我正在尝试使用 fs.stat 和 fs.lstat 将路径识别为文件路径 fs.stat('/img/items/item.jpg', function (err, stats) { var i
我想检查给定的字符串是文件还是目录,我已经尝试了 File 的方法 isFile() 和 isDirectory()类,但问题是如果目录或文件不存在,这些方法将返回 false,因为如 javadoc
我正在尝试将一个程序从 Linux 转换为在 Windows 上使用,它在 Linux 上调用 test -f 或 test -d。我需要它在 Windows 上做同样的事情。是否有内置命令或其他程序
这个问题在这里已经有了答案: both File.isFile() and File.isDirectory() is returning false (8 个答案) 关闭 4 年前。 public
我有一些代码执行想要延迟运行。 (假设 10 秒后)。在此代码执行中,我需要检查提供的文件是否确实是“正常”文件而不是目录。 for (File f : pAttachments) {
操作系统:Windows 10 如果我在 C:/Temp/CSV 中有 python 脚本,它会正常工作。但是,如果我将脚本放在单独的文件夹中,它只能识别三个 .csv 文件之一。 import os
This question already has answers here: Using endswith to read list of files doesn't find extension
新的 python 编码器。 设置一个非常基本的脚本来删除不同位置的各种文件,本质上,一个反病毒脚本。该脚本似乎可以正常运行: import os my_tup = ( '/Users/kevin/D
因此,我尝试将 os.path.isfile 或 os.path.exists 合并到我的代码中,并成功找到某些常规文件(pdf、png ) 搜索以字母开头的文件名时。 我正在使用的文件命名标准(并且
我正在尝试扫描我的硬盘以查找 jpg 和 mp3 文件。 我已经编写了以下脚本,如果我将根目录中包含文件的目录传递给它,它就可以工作,但如果我将根目录传递给它,则不会返回任何内容。 我是 Python
本文整理了Java中org.apache.catalina.WebResource.isFile()方法的一些代码示例,展示了WebResource.isFile()的具体用法。这些代码示例主要来源于
我正在编写文件和路径操作的单元测试,但是无法在isFile中添加fs.statSync(filePath).isFile()。 我收到以下错误: ReferenceError: isFile is n
这个问题在这里已经有了答案: os.makedirs doesn't understand "~" in my path (3 个答案) 关闭 6 个月前。 我在目录中有一个文件 7.csv:'~/
这个问题在这里已经有了答案: os.makedirs doesn't understand "~" in my path (3 个答案) 关闭 6 个月前。 我在目录中有一个文件 7.csv:'~/
我正在尝试这样做: import os [x for x in os.listdir('.') if os.path.isfile(x)] [x for x in os.listdir('dirnam
ipdb> os.listdir(SPREADSHEETS_DIR) ['Report Mar.xlsx'] ipdb> fff = os.listdir(SPREADSHEETS_DIR)[0] i
import os.path import sys try: os.path.isfile("random3664746474746.txtxtxtxtx") #os.path.isf
我正在尝试使用 os.path.isfile 测试网络驱动器上是否存在文件,但即使文件存在,它也会返回 false。知道为什么会这样或我可以使用任何其他方法来检查此文件吗? 我使用的是Python2.
我接到了一项教育任务,期间我编写了 Gherkin 场景,以使用 Python 3.6、Splinter 和 Behave 来测试网站。我取得了一些相当好的进展,但我在这件小事上陷入困境。目前,我已经
我正在尝试检查提供的路径是否存在以及它是否是一个文件。 所以我写了这段代码: #include #include bool Tool::checkPath(const QString &path)
我是一名优秀的程序员,十分优秀!