用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传出来。
我觉得递归出了问题,现在还没想的明白,欢迎看到的大神解答。
用Python递归做个多层次的文件执行的更多相关文章
- python递归删除目录本身以及目录下文件
import os def local_rm(dirpath): if os.path.exists(dirpath): files = os.listdir(dirpath) for file in ...
- python 递归进阶操作方法
递归 在函数内部,可以调用其他函数; 如果一个函数在内部调用自身本身,这个函数就是递归函数. 例如,我们来计算阶乘: n! = 1 x 2 x 3 x ... x n, 用函数f1(n)表示,可以看出 ...
- Python来做应用题及思路
Python来做应用题及思路 最近找工作头疼没事就开始琢磨python解应用题应该可以,顺便还可以整理下思路当然下面的解法只是个人理解,也欢迎大佬们给意见或者指点更好的解决办法等于优化代码了嘛,也欢迎 ...
- python --> 递归 以及装饰器
一.递归知识 函数迭套执行,逐层执行之后,满足某个条件之后就会停止执行,将return值返回上层的函数,上层函数再逐层返回,最终返回给最初始函数. 递归在斐波那契数列的应用[斐波那契数列特点:前两个数 ...
- Python递归_打印节点信息
Python递归_打印节点信息 递归特性:1.必须由一个明确的结束条件2.每次进入更深一层递归时,问题规模相比上一次递归都应该有所减少3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用时 ...
- Python递归优化方法
递归栈溢出 Python的递归调用栈的深度有限制,默认深度为998,可以通过sys.getrecursionlimit()查看. 针对递归栈溢出,我们可以将默认深度设置为大一些,这样不会报错,但是再大 ...
- 学了Python可以做什么工作
学了Python可以做什么工作 用 Python 写爬虫 据我所知很多初学 Python 的人都是使用它编写爬虫程序.小到抓取一个小黄图网站,大到一个互联网公司的商业应用.通过 Python 入门爬虫 ...
- Python递归的经典案例
目录 : 一.递归的简介 二.递归的经典应用 2.1 递归求阶乘 2.2 递归推斐波那契数列 2.3 二分法找有序列表指定值 2.4 递归解汉诺塔 前言: 当我们碰到诸如需要求阶乘或斐 ...
- 你都用python来做什么?
首页发现话题 提问 你都用 Python 来做什么? 关注问题写回答 编程语言 Python 编程 Python 入门 Python 开发 你都用 Python 来做什么? 发现很 ...
随机推荐
- 检查cgroup v2 是否安装
cgroup 当前包含了v1, 以及v2 版本,v2 版本相比v1 在目录组织上更加清晰,管理更加方便,很多 时候我们可能需要检查我们安装的内核当前内核版本是否支持cgroup v2 文章内容来自 h ...
- Python 下载超大文件
使用python下载超大文件, 直接全部下载, 文件过大, 可能会造成内存不足, 这时候要使用requests 的 stream模式, 主要代码如下 iter_content:一块一块的遍历要下载的内 ...
- 群晖采用root用户登录
在控制面板中开启 ssh 登录 通过有 管理员权限的用户登录 通过输入 sudo -i 或者 sudo su - , 然后输入当前用户密码, 进入 root 输入如下命令可以修改root 用户的密码 ...
- tomcat9源码导入idea
maven部署 下载源码 tomcat最新版的github地址 tomcat9官网下载 步骤 源码根目录新建 home 文件夹 把 conf 文件夹和 webapps 文件夹移动到 home 文件夹 ...
- Centos 7 更换为 阿里云 yum 源
地址: https://opsx.alibaba.com/ 操作步骤: 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentO ...
- shell 杀死80端口的所有进程
netstat -lnp|grep |grep -v grep |awk
- mysql5.7 之 sql_mode=only_full_group_by问题
在使用查询时,使用到了group by 分组查询,报如下错误: ERROR (): In aggregated query without GROUP BY, expression # of SELE ...
- Kali linux 2018 安装 Fluxion
本人是在VMware 12下安装 Kali linux 2018.2版本 安装完成后 用命令行运行更新 apt-get update apt-get full-upgrade 更新所有组件. ...
- Kafka(四) —— KafkaProducer源码阅读
一.doSend()方法 Kafka中的每一条消息都对应一个ProducerRecord对象. public class ProducerRecord<K, V> { private fi ...
- pdfBox 解析 pdf文件
Spting boot 项目 1.添加依赖 <dependency> <groupId>org.apache.pdfbox</groupId> <artifa ...