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

时间:2016-04-30 07:46:08

标签: python c++

我有一个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。

解决!

1 个答案:

答案 0 :(得分:1)

您可能正在运行具有管理权限的python程序和与另一个不允许读取它的用户的C ++程序吗?

另请注意,文件位置可能很重要。在Windows上,由于我不完全清楚的原因,系统有时只是简化进程以便能够在某个目录中创建文件(例如C:\),而在另一个“更安全”的地方创建文件。 / p>

这可能是调试的噩梦,因为操作系统只是对程序撒谎......