【问题标题】:Display all but current executing/running file in python 3.3在 python 3.3 中显示除当前执行/运行文件之外的所有文件
【发布时间】:2014-03-23 09:23:54
【问题描述】:

目前我的文件能够列出一个目录的所有文件。但是我希望代码忽略列表中当前正在运行/正在执行的文件。

添加现有代码需要哪些代码或方法?

【问题讨论】:

    标签: python python-3.x list file


    【解决方案1】:

    当前文件的名称在特殊变量__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.listdirglob.glob 一起执行此操作的示例
    • 如果你能给我一个如何使用这个变量的例子,那将有助于我理解如何使用它。
    • 我在答案中添加了一个示例。
    • 您可能指的是os.path.dirname(__file__) 而不是'/home/you/scripts',即,OP 想要枚举具有当前运行文件的目录中的文件。或dirname, filename = os.path.split(__file__)。另外,使用print() (Python 3)。
    猜你喜欢
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    相关资源
    最近更新 更多