Python:运行所有子目录中的脚本

2024-04-25

我是Python新手,我正在用它来做一些数据分析。

我的问题如下:我有一个包含许多子目录的目录,每个子目录都包含大量数据文件。

我已经编写了一个 Python 脚本,当在这些子目录之一中执行时,该脚本会执行数据分析并将其写入输出文件。该脚本包含一些我调用的 shell 命令os.system(),所以我必须“位于”子目录之一才能使其工作。

我怎样才能编写一个自动执行以下操作的函数:

  1. 移动到第一个子目录
  2. 执行脚本
  3. 返回上级目录并移动到下一个子目录

我想这可以通过使用某种方式来完成os.walk()但我不太明白它是如何工作的。

PS我知道存在这个帖子 https://stackoverflow.com/questions/15005476/run-python-script-on-all-subdirectories-with-specific-name但这并不能解决我的问题。

PPS 也许我应该指出我的函数不将目录名称作为参数。其实这不需要争论。


要更改 Python 中的工作目录,您需要:

os.chdir(your_path)

然后您可以递归运行脚本。

示例代码:

import os

directory_to_check = "your_dir" # Which directory do you want to start with?

def my_function(directory):
      print("Listing: " + directory)
      print("\t-" + "\n\t-".join(os.listdir("."))) # List current working directory

# Get all the subdirectories of directory_to_check recursively and store them in a list:
directories = [os.path.abspath(x[0]) for x in os.walk(directory_to_check)]
directories.remove(os.path.abspath(directory_to_check)) # If you don't want your main directory included

for i in directories:
      os.chdir(i)         # Change working Directory
      my_function(i)      # Run your function

我不知道你的脚本是如何工作的,因为你的问题很笼统,所以我只能给出一个笼统的答案......

但我认为你需要的是:

  1. 获取所有子目录并存储它们使用 os.walk
  2. 改变你的working目录与os.chdir

单独使用 os.walk 是行不通的

我希望这有帮助! 祝你好运!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:运行所有子目录中的脚本 的相关文章

随机推荐

  • 如何在多进程内更新 Tkinter 小部件?

    我正在尝试使用进程更新框架 但我无法这样做 如果我不使用进程 框架将使用子元素进行更新 但在使用多进程时则不会 这是我尝试过的 代码是类的一部分 def zx self q print asdadsas lbl Label self myf
  • Scala 相当于 Java 的 static 块吗?

    Scala 相当于 Java 的 static 块吗 伴生对象的构造函数 即主体 中的代码是not与 Java 类的静态初始化块中的代码完全相同 在下面的示例中 我创建了 A 的实例 但未进行初始化 scala gt object Test
  • Laravel 对包含多个项目的集合求和

    我有一个模型SettlementEntries与子表有关系return this gt hasMany App Online entry id 当尝试获取一个条目时 我可以对我的集合进行求和 如下例所示 item SettlementEnt
  • Android 地图 API,异常

    我正在使用谷歌地图 v2 我的代码在方法上被破解 public void onConnected Bundle bundle mLastLocation LocationServices FusedLocationApi getLastLo
  • 将文件上传到 S3 的 upload() 和 putObject() 之间的区别?

    在aws sdk中S3类 有什么区别upload http docs aws amazon com AWSJavaScriptSDK latest AWS S3 html upload property and putObject http
  • 使 CSS url() 相对于文档

    当涉及 CSS 时 适用以下规则 Partial URLs are interpreted relative to the source of the style sheet not relative to the document 但这是
  • 使用 javascript 比较日期[重复]

    这个问题在这里已经有答案了 我在 JavaScript 中有两个日期 var first 2012 11 21 var second 2012 11 03 我想做 if first gt second 在没有外部库的情况下 最好的方法是什么
  • 无法在 Eclipse 4.2 上安装 Aptana 插件

    我已经安装了 Eclipse 4 2 Juno 现在我想安装 aptana 来开发 ruby 但出现以下错误 无法读取存储库http download aptana com studio3 plugin install content ja
  • 获取 `TypeError: jest.fn 不是一个函数`

    我正在尝试使用 Jest 创建以下单元测试 jest dontMock pointsAwardingActions js describe points awarding actions gt describe award points g
  • 获取个人资料的 Facebook 创建日期[重复]

    这个问题在这里已经有答案了 是否可以通过使用 Graph API 获取 Facebook 个人资料的创建日期 时间 我需要它来建立一个身份验证机制 该机制不允许刚刚创建的 Facebook 用户 调用 Facebook API 是一个 相对
  • 找不到主要出口来加载“XYZComponent”

    我在 Net MVC 组件中加载了 ng2 代码 但控制台中显示以下错误 异常 未捕获 承诺 错误 找不到加载 UsersComponent 的主要出口 错误 找不到加载 UsersComponent 的主要出口 知道可能是什么问题吗 我正
  • Ruby On Rails 更新 Heroku 动态路由

    我有一个使用应用程序范围的 slugs 的应用程序 使用懒惰的宝石 https github com RISCfuture slugalicious与 Sluggable 表 并使用以下代码路由到这些 slugs Slugs begin S
  • 在 Fluent nHibernate 中使用派生类

    我有两个共享公共字段的表 我不想重新映射所有这些 而是 希望拥有一个具有公共字段的基类 对于 POCO 来说这很简单 class Base public string commonField get set class Derived Ba
  • 如何在 C# 中读取文本文件并将数据添加到 int 数组中?

    我正在尝试读取一个文本文件 其中包含以逗号分隔的数字 当我阅读时使用File Readline 我把它拿到string 我需要将其转换为 int 数组 但它给出了错误 文本文件的内容 146429 143689 144380 141523
  • 将 unicode 对象转换为带有实体的拉丁字符串

    我有一个 unicode 对象 例如 x u a 日本語 en i hall le 并希望将其转换为带有 h tml entities 的 latin 1 字符串 例如 a amp 26085 26412 35486 en 269 i ha
  • C/C++ stdlib 命名约定的名称?

    我想知道 C C 标准库中使用的命名约定是否有一个名称 或者至少有一个可以查找规则的备忘单 例如 push back underscore used setstate but not used here string npos when t
  • 没有 id 或名称的 Spring bean

    我正在审查一些 Spring 代码 并且看到一些没有 id 或名称的 bean def 做这件事的人不在场 无法询问 该应用程序运行良好 我不知道这必然意味着什么 有人知道这是否有什么特别的含义吗 某些 Bean 不需要由上下文文件中的其他
  • Spring SAML 扩展和 Spring Security CSRF 保护冲突

    我们有一个带有 Spring Security 3 2 4 的 Spring MVC 4 0 5 应用程序 其中包括运行良好的 CSRF 保护 我们现在添加 SAML 安全扩展 spring security saml2 core 1 0
  • 如何在 JSTL 中设置 cookie

    我正在尝试实现以下目标 但不确定是否可能以及语法应该是什么
  • Python:运行所有子目录中的脚本

    我是Python新手 我正在用它来做一些数据分析 我的问题如下 我有一个包含许多子目录的目录 每个子目录都包含大量数据文件 我已经编写了一个 Python 脚本 当在这些子目录之一中执行时 该脚本会执行数据分析并将其写入输出文件 该脚本包含