Python OSError: [Errno 9] Bad file descriptor after opening big json file
Python OSError: [Errno 9] Bad file descriptor after opening big json file
我试图逐行读取 json 中的一个大 json 文件(维基百科 json 转储)并得到错误:
Traceback (most recent call last):
File "C:/.../test_json_wiki_file.py", line 19, in <module>
test_fct()
File "C:/.../test_json_wiki_file.py", line 12, in test_fct
for line in f:
OSError: [Errno 9] Bad file descriptor
这是我的代码:
import json
def test_fct():
data = []
i = 0
with open('E:/.../20200713.json/20200713.json') as f:
for line in f:
data.append(json.loads(line))
i = i + 1
if i > 1:
input_file.close()
return data
test_data = test_fct()
文件大小约为 700GB,文件说明 (https://www.wikidata.org/wiki/Wikidata:Database_download) 表明可以逐行阅读。我不知道这是否重要,但 E:/ 硬盘驱动器是外部驱动器。
提前感谢您的帮助:)
我没有任何关于在 python 中打开大文件的第一手知识,但你的意思是要将路径设置为 20200713.json/20200713.json
。第一个实际上是一个具有 .json 扩展名的目录吗?我还建议尝试首先加载较小的文件样本(打开可能很难,所以也许只需在终端中使用 more
命令?)。
我试图逐行读取 json 中的一个大 json 文件(维基百科 json 转储)并得到错误:
Traceback (most recent call last):
File "C:/.../test_json_wiki_file.py", line 19, in <module>
test_fct()
File "C:/.../test_json_wiki_file.py", line 12, in test_fct
for line in f:
OSError: [Errno 9] Bad file descriptor
这是我的代码:
import json
def test_fct():
data = []
i = 0
with open('E:/.../20200713.json/20200713.json') as f:
for line in f:
data.append(json.loads(line))
i = i + 1
if i > 1:
input_file.close()
return data
test_data = test_fct()
文件大小约为 700GB,文件说明 (https://www.wikidata.org/wiki/Wikidata:Database_download) 表明可以逐行阅读。我不知道这是否重要,但 E:/ 硬盘驱动器是外部驱动器。
提前感谢您的帮助:)
我没有任何关于在 python 中打开大文件的第一手知识,但你的意思是要将路径设置为 20200713.json/20200713.json
。第一个实际上是一个具有 .json 扩展名的目录吗?我还建议尝试首先加载较小的文件样本(打开可能很难,所以也许只需在终端中使用 more
命令?)。