小编rme*_*ier的帖子

sys.stdin 和 input() 之间的冲突 - EOFError:读取一行时出现 EOF

我无法在不引发 EOFError 异常的情况下使以下脚本工作:

#!/usr/bin/env python3

import json
import sys

# usage:
# echo '[{"testname": "testval"}]' | python3 test.py

myjson = json.load(sys.stdin)
print(json.dumps(myjson))

answer = input("> ")  # BUG: EOFError: EOF when reading a line
print(answer)
Run Code Online (Sandbox Code Playgroud)

我读过这个似乎相关的问题:Python STDIN User Input Issue

我认为这告诉我我需要清除标准输入缓冲区?但我不确定如何,因为print(sys.stdin.readline())只是输出一个换行符而 EOFError 仍然存在。

我也尝试使用该sys.stdin.flush()方法(在这个问题中找到:Usage of sys.stdout.flush() method)虽然我仍然不明白它的作用,因为我在官方文档(3.6)中找不到它,最接近我发现是这个,但它没有提到刷新:https : //docs.python.org/3/library/sys.html

请记住,我不是程序员,也没有 CS 教育或背景。我只是编写脚本来自动化我的部分非技术工作。因此,如果您知道关于标准输入/标准输出如何在 Python 的 shell 中工作的任何好的初学者资源,请务必告诉。

python stdin python-3.x

5
推荐指数
1
解决办法
1241
查看次数

使用 PyInstaller 在 .exe 文件上设置产品版本号元数据

我一直在PyInstaller 文档和搜索引擎上到处寻找,但我无法弄清楚:

当我构建.exe文件时,右键单击并进入“详细信息”“产品版本号”字段为空。

我需要做什么来填充这个字段?

python windows exe metadata pyinstaller

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×2

exe ×1

metadata ×1

pyinstaller ×1

python-3.x ×1

stdin ×1

windows ×1