Python IO错误: [Errno 2] from recursive directory call

标签 python file-io io directory subdirectory

下面的代码是我正在编写的程序的一部分,该程序在每个 .py、.sh 上运行一个方法。或目录及其文件夹中的 .pl 文件。

for root, subs, files in os.walk("."):
    for a in files:
        if a.endswith('.py') or a.endswith('.sh') or a.endswith('.pl'):
            scriptFile = open(a, 'r')
            writer(writeFile, scriptFile)
            scriptFile.close()
        else:
            continue

编写程序时,它在我编写的目录树中工作,但是当我将其移动到另一个文件夹以在那里尝试时,我收到此错误消息:

Traceback (most recent call last):
File "versionTEST.py", line 75, in <module>
scriptFile = open(a, 'r')
IOError: [Errno 2] No such file or directory: 'enabledLogSources.sh'

我知道发生了一些奇怪的事情,因为该文件肯定在那里......

最佳答案

您需要将根目录添加到文件名

scriptFile = open(root + '/' + a, 'r')

关于Python IO错误: [Errno 2] from recursive directory call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24618913/

相关文章:

c++ - 除非存在特定的 printf 语句,否则 fwrite 不会将缓冲区写入标准输出

php - 用 PHP 覆盖文件中的行

c# - 同步 XmlWriter 对文件的访问以防止 IOExceptions 的最佳方法是什么?

java - 通过java中的管道流丢失数据

python - 有人可以建议如何实现自定义 Django PasswordResetView 吗?

python - SVR 模型 --> 特征缩放 - 预期的二维数组,取而代之的是一维数组

python - 如何使用SQLAlchemy设置和获取关系记录?

python - PerformanceWarning : DataFrame is highly fragmented. 这通常是多次调用 `frame.insert`的结果,性能较差

java - 如何获取给定目录中包含具有特定名称的文件的所有目录

Java:PrintWriter 和字符串中的换行符