设为首页 加入收藏

TOP

用Python递归做个多层次的文件执行
2019-07-15 18:09:52 】 浏览:44
Tags:Python 多层次 文件 执行

想用 递归实现多层次的 '.py'执行但是发现好像不能

import os

def func(path):
    if os.path.isdir(path):
        for name in os.listdir(path):
            base_name = os.path.join(path, name)
            # print(base_name)
            return func(base_name)
    elif os.path.isfile(path) and path.endswith('.py)'):
        # print(path)
        return os.system('python %s' % path)

func(r'D:\GUIstudy\我要执行的文件')
D:\GUIstudy\我要执行的文件\快要找到我的文件了
D:\GUIstudy\我要执行的文件\快要找到我的文件了\马上就到了
D:\GUIstudy\我要执行的文件\快要找到我的文件了\马上就到了\到了
D:\GUIstudy\我要执行的文件\快要找到我的文件了\马上就到了\到了\radom练习.py

虽然可以找到最深层的文件,但是并没有出现预期的结果。

我觉得是os.system()立马执行了,好像不能 return 

def func(path):
    if os.path.isdir(path):
        for name in os.listdir(path):
            base_name = os.path.join(path, name)
            print(base_name)
            return func(base_name)
    elif os.path.isfile(path) and path.endswith('.py)'):
        # print(path)
        #return os.system('python %s' % path)
        return path


 os.system('python %s' % func(r'D:\GUIstudy\我要执行的文件'))

既然没有得到想要的结果,我就想返回文件路径, 在外面执行。但是发现报错了

D:\GUIstudy\我要执行的文件\快要找到我的文件了
D:\GUIstudy\我要执行的文件\快要找到我的文件了\马上就到了
D:\GUIstudy\我要执行的文件\快要找到我的文件了\马上就到了\到了
D:\GUIstudy\我要执行的文件\快要找到我的文件了\马上就到了\到了\radom练习.py
D:\Python\python.exe: can't open file 'None': [Errno 2] No such file or directory

看了下传出来是什么。

print(func(r'D:\GUIstudy\我要执行的文件'))
D:\GUIstudy\我要执行的文件\快要找到我的文件了
D:\GUIstudy\我要执行的文件\快要找到我的文件了\马上就到了
D:\GUIstudy\我要执行的文件\快要找到我的文件了\马上就到了\到了
D:\GUIstudy\我要执行的文件\快要找到我的文件了\马上就到了\到了\radom练习.py
None

看到这竟然返回的是None,说明递归没有把path传出来。

我觉得递归出了问题,现在还没想的明白,欢迎看到的大神解答。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Django学习之十四:Django ORM继.. 下一篇Python-14-常用模块

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目