如何在使用os.listdir时删除.py扩展名

Kat*_*t.S 4 python import operating-system module

在我的代码中,我想为目录中存在的所有文件执行导入文件名。我abc.py在工作区下有一个文件。我目前正在执行以下操作:

for filename in os.listdir(homedir/workspace)
    exec "import " + filename
    filename = eval(filename + '.function(variable)')
Run Code Online (Sandbox Code Playgroud)

问题在于,不是执行import abc而是执行import abc.py,然后显示错误no module named py

我该如何解决?

提前致谢!

Cor*_*mer 7

您可以使用os.path.splitext

os.path.splitext(filename)[0]
Run Code Online (Sandbox Code Playgroud)

在返回的两个元素数组中,第一个元素只是文件名,第二个元素是扩展名。为了更加安全,您可以仔细检查您确实抓取了一个.py文件:

if os.path.splitext(filename)[1] == '.py':
    # do stuff
Run Code Online (Sandbox Code Playgroud)