相关疑难解决方法(0)

Windows上无缓冲的子进程标准输出

有没有一种简单的方法来读取子进程无缓冲的输出?我正在尝试从Java调用一个C程序,但显然当连接到管道时它是stdout块缓冲,只有在连接到控制台时才进行行缓冲.我无法修改C程序.

也许有办法欺骗程序认为它连接到控制台?对于适用于Linux的解决方案的奖励积分.

c java windows

9
推荐指数
1
解决办法
1177
查看次数

覆盖/清除以前的控制台线路

我的问题是,我希望能够在python控制台中覆盖/清除以前的打印行.这个问题已被多次询问(例如,Python - 删除和替换打印项目),但是使用相同的代码(答案标记为正确,对我来说什么都没打印):

for i in range(10):
    print("Loading" + "." * i)
    time.sleep(1)
    sys.stdout.write("\033[F") # Cursor up one line
    sys.stdout.write("\033[K") # Clear to the end of line
Run Code Online (Sandbox Code Playgroud)

我得到输出(在python IDLE中):

Loading
[F[KLoading.
[F[KLoading..
[F[KLoading...
[F[KLoading....
[F[KLoading.....
[F[KLoading......
[F[KLoading.......
[F[KLoading........
[F[KLoading.........
[F[KLoading..........
[F[K
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我google了很多,没有什么工作真的.它可以打印出任何内容,也可以不覆盖.

如果这有帮助,我运行的是Windows 8.1和Python 3.51.通过cmd运行代码不会影响任何内容.

此外,添加sys.stdout.flush()没有帮助.

python stdout python-3.x

7
推荐指数
1
解决办法
8540
查看次数

标签 统计

c ×1

java ×1

python ×1

python-3.x ×1

stdout ×1

windows ×1