gpt4 book ai didi

python - 文件在 Python 3.4 中存在于 Windows 与 Linux 上

转载 作者:可可西里 更新时间:2023-11-01 11:46:27 26 4
gpt4 key购买 nike

我有一个脚本需要在 ubuntu 和 windows 上运行,每个都使用 Python 3.4,当我在 windows 上运行时出现异常,“PermissionError: [WinError 32] 该进程无法访问该文件,因为它是正在被另一个进程使用:'C:\Users\me\Desktop\tmp9uvk57b4.txt'" 在 Linux 上,它可以正常工作。

我已将我的问题归结为这个示例片段。我不确定问题出在哪里,但该代码段需要一些文本并将其写入临时文件。一段时间后,它会删除临时文件,这就是错误的来源。

#!/usr/bin/env python3

import os
import tempfile

msg = "THIS IS A HORRIBLE MESSAGE"

txt = None

try:

txt = tempfile.mkstemp(dir='.', suffix='.txt')[1]
with open(txt, "w") as f:
f.write(msg)

except Exception as exp:
raise exp

finally:
if txt:
os.remove(txt)

我假设存在一些问题,即 windows 不会关闭文件而 linux 会关闭文件。我可以再次明确关闭它吗?这会弄乱 Linux 上的任何东西吗?有没有好的 windows/linux gotcha 资源?

最佳答案

tempfile.mkstemp 有两个返回值,一个打开的文件句柄和文件名。您不使用打开的文件句柄,这样它就永远不会关闭。因此错误信息。

import os
import tempfile

msg = "THIS IS A HORRIBLE MESSAGE"

fd, filename = tempfile.mkstemp(dir='.', suffix='.txt')
try:
with os.fdopen(fd, "w") as f:
f.write(msg)
finally:
os.remove(filename)

关于python - 文件在 Python 3.4 中存在于 Windows 与 Linux 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43499059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com