在本文中,我们将详细介绍子脚本将Python输出输出到子流程中的控制台的各个方面,并为您提供关于python输出子字符串的相关解答,同时,我们也将为您带来关于C#控制台的输入和输出-Console类-
在本文中,我们将详细介绍子脚本将Python输出输出到子流程中的控制台的各个方面,并为您提供关于python输出子字符串的相关解答,同时,我们也将为您带来关于C#控制台的输入和输出-Console类-输出到控制台、linux – Python脚本输出到控制台,即使它是在后台运行、Node.js的python子脚本在完成时输出,而不是实时、Pycharm Python 控制台输出与终端 python shell 输出的有用知识。
本文目录一览:- 子脚本将Python输出输出到子流程中的控制台(python输出子字符串)
- C#控制台的输入和输出-Console类-输出到控制台
- linux – Python脚本输出到控制台,即使它是在后台运行
- Node.js的python子脚本在完成时输出,而不是实时
- Pycharm Python 控制台输出与终端 python shell 输出
子脚本将Python输出输出到子流程中的控制台(python输出子字符串)
在我的父脚本中,我执行以下操作:
fout=open(outfile,"w")ferr = open(errfile,"w")subprocess.call("1.py",stdout=fout,stderr=ferr,shell=True)
在1.py
脚本中,我希望大多数日志消息都进入日志文件,但是我希望根据打印条件在控制台上打印一些消息:
print "Hello World"
但是它正在打印到outfile,我也想在控制台上打印
sys.__stdout__.write("Hello World");
但这aslso不起作用。任何帮助,将不胜感激!
答案1
小编典典如果将stdout,stderr重定向,则可以尝试直接打印到控制台:
try: # Windows from msvcrt import putwch def print_to_console(message): for c in message: putwch(c) # newline putwch(''\r'') putwch(''\n'')except ImportError: # Unix import os fd = os.open(''/dev/tty'', os.O_WRONLY | os.O_NOCTTY) tty = os.fdopen(fd, ''w'', 1) del fd def print_to_console(message, *, _file=tty): print(message, file=_file) del tty
例:
print_to_console("Hello TTY!")# -> Hello TTY!
C#控制台的输入和输出-Console类-输出到控制台
C# 控制台程序一般使用 .NET Framework Console 类提供的输入/输出服务。我们多次用到Console.WriteLine方法,我们再学习一些其他的方法。
输出到控制台
输出到控制台就是把数据输出到控制台并显示出来, .Net框架提供了Console类实现这个任务,具体方式有以下几种:
Console.WriteLine();
Console.Write();
Console.WriteLine("输出的值");
Console.Write("输出的值");
Console.WriteLine("输出的格式字符串",变量列表);
Console.Write("输出的格式字符串",变量列表);
Console.WriteLine()方法是将要输出的字符串与换行控制字符一起输出,当次语句执行完毕时,光标会移到目前输出字符串的下一行。
Console.Write()方法光标会停在输出字符串的最后一个字符后,不会移动到下一行,其余的用法与Console.WriteLine()一样。
Console.WriteLine();和Console.Write();的唯一区别就是前者换行,后者不换行。其余用法全部相同。
输出格式字符串
输出格式字符串代码如下:
Console.WriteLine("我的好朋友有{0},{1},{2}和{3}",string[0],string[1],string[2],string[3],);
这种方式中包含两个参数:“格式字符串”和变量列表。
"我的好朋友有{0},{2}和{3}"就是格式字符串,{0},{2},{3}叫做占位符,代表后边依次排列的变量列表,0对应第1个变量,1对应第2个变量,依次类推,完成输出。
在要输出变量值的位置使用占位符{n}来占位,然后用','号来增加变量。n从0开始计数,如果要输出3个变量,那么最后一个n的值应该为2。
int year = 2008;
string str = "今年是";
Console.WriteLine(" {0} {1}年。",str,year);输出应如下所示:
今年是2008年。
linux – Python脚本输出到控制台,即使它是在后台运行
我在后台运行python脚本,但为什么它仍然打印到控制台,即使用管道传输到文件?
我尝试了以下命令:
python script.py &
python script.py > output.txt &
我尝试了一个简单的脚本:
print "hello world"
同
python script.py &
它仍然打印到控制台.
但
python script.py > output.txt &
按预期工作,不打印到控制台.
python script.py > output.txt 2>&1 &
或者看起来您可能已经启动了仍在运行的后台任务:
python script.py &
键入fg将其置于前台,然后使用Ctrl-C将其终止.
Node.js的python子脚本在完成时输出,而不是实时
最终这将用于温度传感器,所以现在我有一个虚拟脚本,每隔几秒打印一次温度值:
Thermostat.py
import random,time for x in range(10): print(str(random.randint(23,28))+" C") time.sleep(random.uniform(0.4,5))
这是服务器的缩减版本:
Index.js
var sys = require('sys'),spawn = require('child_process').spawn,thermostat = spawn('python',["thermostat.py"]),app = require('express')(),http = require('http').Server(app),io = require('socket.io')(http); thermostat.stdout.on('data',function (output) { var temp = String(output); console.log(temp); io.sockets.emit('temp-update',{ data: temp}); }); app.get('/',function(req,res){ res.sendFile(__dirname + '/index.html'); });
最后是网页:
的index.html
<!doctype html> <html> <head> <title>Live temperature</title> <link rel="stylesheet" type="text/css" href="styles.css"> </head> <body> <div id="liveTemp">Loading...</div> <script src="http://code.jquery.com/jquery-1.11.1.js"></script> <script src="/socket.io/socket.io.js"></script> <script> var socket = io(); socket.on('temp-update',function (msg) { $('#liveTemp').html(msg.data) }); </script> </body> </html>
问题是nodejs似乎一次收到所有温度值,而不是以随机间隔获得10个温度值,我在脚本完成后得到一个长字符串中的所有值:
解决方法
>设置PYTHONUNBUFFERED环境变量
>将-u开关传递给python可执行文件
>在每次写入(或在您的情况下为print())之后调用sys.stdout.flush()到stdout
>对于Python 3.3,您可以将flush = true传递给print():print(‘Hello World!’,flush = True)
另外,在你的节点代码中,(即使你在你的python代码中有一个睡眠而你现在正在刷新stdout)你真的不应该假设你的’data’处理程序中的thermostat.stdout输出总是只有一行.
Pycharm Python 控制台输出与终端 python shell 输出
如何解决Pycharm Python 控制台输出与终端 python shell 输出?
我有以下代码:
lang = list("Python"); lang[:-4]
当我通过 python shell 在终端中运行它时,它会按照预期输出 ["P","y"]
。但是在 Pycharm Python 控制台中,它什么也不打印。我发现了 this 问题,它使用带有 flush=True
或 sys.stdout.flush()
的打印语句。就我而言,它们都不起作用。我可以在不同的行上运行它,但我想知道的是原因。为什么它在 Pycharm 中什么也不打印?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
关于子脚本将Python输出输出到子流程中的控制台和python输出子字符串的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于C#控制台的输入和输出-Console类-输出到控制台、linux – Python脚本输出到控制台,即使它是在后台运行、Node.js的python子脚本在完成时输出,而不是实时、Pycharm Python 控制台输出与终端 python shell 输出的相关知识,请在本站寻找。
本文标签: