Python 使用pyinstaller向文件写入问题

Python 使用pyinstaller向文件写入问题,python,pyinstaller,Python,Pyinstaller,因此,更新后,我发现我的编译问题是,我需要将我的笔记本更改为py文件,而选择“另存为”并不能做到这一点。所以我不得不运行一个不同的脚本,把我的笔记本变成一个py文件。我的exe问题的一部分是我使用了fopen命令,当编译成exe时,它显然不可用。所以我把代码改成上面的代码。但是现在我在尝试运行脚本时出现了一个写错误。我在操作系统的写函数上找不到任何东西。我应该找其他地方吗 原始代码: import requests import json import pandas as pd import c

因此,更新后,我发现我的编译问题是,我需要将我的笔记本更改为py文件,而选择“另存为”并不能做到这一点。所以我不得不运行一个不同的脚本,把我的笔记本变成一个py文件。我的exe问题的一部分是我使用了fopen命令,当编译成exe时,它显然不可用。所以我把代码改成上面的代码。但是现在我在尝试运行脚本时出现了一个写错误。我在操作系统的写函数上找不到任何东西。我应该找其他地方吗

原始代码:

import requests
import json
import pandas as pd
import csv
from pathlib import Path



response = requests.get('url', headers={'CERT': 'cert'}, stream=True).json()
json2 = json.dumps(response)
f = open('data.json', 'r+')
f.write(json2)
f.close()
路径更改代码:

import requests
import json
import pandas as pd
import csv
from pathlib import Path



response = requests.get('url', headers={'CERT': 'cert'}, stream=True).json()
json2 = json.dumps(response)
filename = 'data.json'
if '_MEIPASS2' in os.environ:
    filename = os.path.join(os.environ['_MEIPASS2'], filename)
fd = open(filename, 'r+')
fd.write(json2)
fd.close()

对代码的更改使我能够克服fopen问题,但造成了写入问题。有什么想法吗?

如果你想写入一个文件,你必须以可写的方式打开它

fd = open(filename, 'wb')

虽然我不知道如果你在写文本,为什么要用二进制打开它。

如果你想写入文件,你必须以可写的方式打开它

fd = open(filename, 'wb')

虽然我不知道如果你在写文本,为什么要用二进制打开它。

谢谢Tim,我在这里发现了一些代码,在你提到之前,我看到我把我的
r+
重写到
rb
。再次感谢。谢谢蒂姆,我正在对我在这里找到的一些代码进行cookie剪切,直到你提到它,我才看到我将我的
r+
重写到
rb
。再次感谢。