gpt4 book ai didi

Python C++ 模块无法读取由 Windows 上的 Python 程序创建的文件

转载 作者:行者123 更新时间:2023-11-30 05:28:08 24 4
gpt4 key购买 nike

我有一个 python 程序,它加载一个用 c++ 创建并作为 dll 导入的 python 模块。在 python 程序中,我在工作目录中创建了一个名为 cpp.conf 的文件。

with open('cpp.conf', 'w') as cppconf:
cppconf.write("blabla")

c++模块稍后由python程序导入。在 C++ 方面,我尝试打开文件 cpp.conf,但失败了。

std::string configFile = "cpp.conf";
std::ifstream ifs(configFile.c_str());
if (ifs.good()) {
std::cout << "opened file successfully." << std::endl;
}
else {
std::cout << "failed to open file." << std::endl;
}

但是,程序完成后,我可以看到文件cpp.conf。我认为可能是 c++ 需要一些时间让文件在磁盘上可见,所以我尝试了以下操作:

with open('cpp.conf', 'w') as cppconf:
cppconf.write("blabla")

import time
time.sleep(5) # wait 5 seconds

它也没有帮助。

如果python程序没有接触文件,也就是没有打开写入,c++端可以成功打开文件。

产生这种效果有什么原因吗?

平台是windows 7,我没在linux上试过。

已解决!

最佳答案

可能是您正在以管理员权限运行 python 程序,而另一个不允许读取它的用户正在运行 C++ 程序?

另请注意,文件位置可能很重要。在 Windows 上,出于我不完全清楚的原因,系统有时只是欺骗进程能够在特定目录(例如 C:\)中创建文件,而它们是在另一个“更安全”的地方。

这可能是调试的噩梦,因为操作系统只是在欺骗程序......

关于Python C++ 模块无法读取由 Windows 上的 Python 程序创建的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36952275/

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