【问题标题】:Set CWD to files location [duplicate]将 CWD 设置为文件位置 [重复]
【发布时间】:2021-03-04 11:37:17
【问题描述】:

我想获取脚本所在位置的文件列表。

假设我有一个目录 - foo/bar

我的脚本在foo/bar/script.py

我从foo运行脚本

我的脚本是这样的:

import os

print(os.listdir())

但是当我从foo 运行它时,我得到的是foo 而不是foo/bar 的内容。我想获取脚本目录的内容,而不是当前工作目录。

那么我该怎么做呢?

【问题讨论】:

标签: python python-3.x


【解决方案1】:

试试这个:从sys.args 获取当前位置并更改您的位置,然后获取列表。

import os, sys

#print(sys.argv[0]) #check this for file location

os.chdir('\\'.join(sys.argv[0].split('\\')[:-1]))
print(os.listdir())

PS:我在 Windows 上测试过,如果你在 mac 或 linux 上,你将不得不使用 '/' 拆分

【讨论】:

    【解决方案2】:

    所以尝试进入 foo/bar 目录而不是 foo。在 foo 中,它们只是另一个名为 bar 的文件夹,而不是文件,因此您只能在运行时获取该文件夹。如果您在 Windows 上,请转到 Cmd 类型“cd foo/bar”。

    我希望这会有所帮助!

    【讨论】:

    • 嗨,欢迎来到 SO。格式化你的答案看起来不错。对其进行格式化以使其对其他人更有帮助
    猜你喜欢
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多