【发布时间】:2014-03-23 09:23:54
【问题描述】:
目前我的文件能够列出一个目录的所有文件。但是我希望代码忽略列表中当前正在运行/正在执行的文件。
添加现有代码需要哪些代码或方法?
【问题讨论】:
标签: python python-3.x list file
目前我的文件能够列出一个目录的所有文件。但是我希望代码忽略列表中当前正在运行/正在执行的文件。
添加现有代码需要哪些代码或方法?
【问题讨论】:
标签: python python-3.x list file
当前文件的名称在特殊变量__file__ 中提供给您,因此您的清单代码可以将每个文件名与其进行比较并省略它。
例如:
import os
filename = os.path.basename(__file__)
for f in os.listdir('/home/you/scripts'):
if f != filename:
print(f)
因为__file__ 给出了命令行中指定的脚本名称,它可能包含目录元素,例如scripts/foo.py,所以os.path.basename 仅用于获取文件部分foo.py。
【讨论】:
os.listdir 或 glob.glob 一起执行此操作的示例
os.path.dirname(__file__) 而不是'/home/you/scripts',即,OP 想要枚举具有当前运行文件的目录中的文件。或dirname, filename = os.path.split(__file__)。另外,使用print() (Python 3)。