Как использовать Popen для чтения файла json в подпроцессе, поскольку в терминале существует ограничение 33766 - PullRequest
1 голос
/ 13 мая 2019

Я использую этот код для чтения файла json в подпроцессе. Это работает только для маленьких jsons, если оно превышает 33766. будет отображаться ошибка, показывающая

FileNotFoundError: [WinError 206] The filename or extension is too long.

из-за превышения 33766. Итак, как прочитать файл JSON с помощью popen. Читайте, что это может решить проблему. Помогите мне с предложениями. Я новичок здесь: \

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"])

1 Ответ

0 голосов
/ 13 мая 2019

Я не уверен, но, возможно, проблема связана с bufsize (отметьте это: Очень большой ввод и передача с использованием подпроцесса. Открыто ) Работает ли с 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)

С другой стороны, если вам нужен выход, вам, возможно, придется иметь дело с ТРУБКОЙ Попена.

...