相关疑难解决方法(0)

检查Python中打开的文件

我在程序中遇到错误,该程序应该运行很长时间才能打开太多文件.有什么方法可以跟踪哪些文件是打开的,所以我可以偶尔打印出这个列表,看看问题出在哪里?

python debugging exception file

55
推荐指数
7
解决办法
3万
查看次数

在Linux中使用Python检查打开的文件

您好我正在寻找一种方法来确定使用Python在我的整个系统(Linux)中打开哪些文件.我找不到任何这样做的模块.

或者也许唯一的方法是使用命令lsof?

谢谢!

python linux lsof

9
推荐指数
1
解决办法
9472
查看次数

Python - 如何检查另一个应用程序是否使用了某个文件?

我想打开一个由另一个应用程序定期写入的文件.此应用程序无法修改.因此,当我知道文件未被其他应用程序写入时,我只想打开该文件.

有没有pythonic方式来做到这一点?否则,我如何在Unix和Windows中实现这一目标?

编辑:我会尽力澄清.有没有办法检查当前文件是否已被其他应用程序打开?

我想从这个问题开始.那些其他应用程序读/写是否与现在无关.

我意识到它可能依赖于操作系统,所以现在可能并不真正与python相关.

python unix windows file-io logging

8
推荐指数
1
解决办法
2万
查看次数

`os.rmdir` 不在空目录上工作?

假设以下目录结构:

A
+-- B
|   +-- C
|   |   +-- D
|   |   |   +-- E
Run Code Online (Sandbox Code Playgroud)

其中没有目录包含任何文件(甚至不可见的文件)。跑步

os.rmdir("A/B/C/D/E"); os.rmdir("A/B/C/D"); os.rmdir("A/B/C"); os.rmdir("A/B"); os.rmdir("A")
Run Code Online (Sandbox Code Playgroud)

在 Python (3.5) 中产生

OSError: [WinError 145] The directory is not empty: '##'
Run Code Online (Sandbox Code Playgroud)

其中##或者是ABCD,但在执行各功能手动不产生此异常。我知道有shutil.rmtree,但文件os.rmdir明确指出

移除(删除)目录路径。仅在目录为空时有效,否则OSError会引发。为了删除整个目录树,shutil.rmtree()可以使用。

至少在 Windows 系统上,情况似乎并非如此。到目前为止我发现的唯一解决方法(不包括shutil.rmtree)是

def rm (dir_path):
    while len(os.listdir(dir_path)) > 0:
        pass # Maybe include timeout here to not lock the program …
Run Code Online (Sandbox Code Playgroud)

windows rmdir python-3.x

5
推荐指数
0
解决办法
911
查看次数

标签 统计

python ×3

windows ×2

debugging ×1

exception ×1

file ×1

file-io ×1

linux ×1

logging ×1

lsof ×1

python-3.x ×1

rmdir ×1

unix ×1