python - 如何使用 Popen 在子进程中读取 json 文件,因为终端中有 33766 限制
问题描述
我正在使用此代码读取子进程中的 json 文件。它只适用于小型 json,如果它超过 33766 个计数。它会显示一个错误显示
FileNotFoundError: [WinError 206] The filename or extension is too long.
这是因为超过 33766 计数。那么如何使用 popen 读取 json 文件 .Read 这可以解决问题。帮我提些建议。我刚来这地方 :\
import subprocess
import json
import os
from pprint import pprint
auth = "authorization: token 1234
file = "jsoninput11.json"
fd=open("jsoninput11.json")
json_content = fd.read()
fd.close()
subprocess.run(["grpcurl", "-plaintext","-H", auth,"-d","@",json_content,"-format","json","100.20.20.1:5000","api.Service/Method"])
解决方案
我不确定,但也许问题与bufsize
(检查这个:
使用 subprocess.Popen 的非常大的输入和管道)它是否适用capture_output=False
?
subprocess.run(["grpcurl", "-plaintext","-H", auth,"-d","@",json_content,"-format","json","100.20.20.1:5000","api.Service/Method"], capture_output=False)
另一方面,如果您需要输出,您可能需要处理 Popen 的 PIPE。
推荐阅读
- c++ - 有没有办法只强制临时实例化?
- javascript - 在 vue.js 中 clearInterval 不使用
- timestamp - 如何在不同的计算机上准确记录同步时间?
- node.js - Mongoose 中间件 schema.pre('save', ...)
- c# - C# 常量数组搜索
- python-3.x - 如何使用 python 为简单的 e2e 聊天应用程序添加媒体支持
- laravel - 如何修改 Laravel API 资源收集响应以在“数据”包装器中包含另一个“数据”包装器?
- asp.net-core - 聚合异常 Asp.Net Core 5.0
- maven - java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory - 与 Appium 相关
- docker - 如何在 docker 中启用/禁用 buildkit?