草庐IT

stdout_writer

全部标签

python - 删除 Python 中的最后一个 STDOUT 行

我试图弄清楚如何禁止在标准输出上显示用户输入。raw_input()后跟任何print语句都会保留用户输入的内容。getpass()不会显示用户输入的内容,但会保留“密码”:"提示。要解决这个问题,我只想删除最后一行(这也会从行尾删除换行符)。 最佳答案 您可以使用VT100controlcodes做您想做的事.可能是这样的:CURSOR_UP_ONE='\x1b[1A'ERASE_LINE='\x1b[2K'print(CURSOR_UP_ONE+ERASE_LINE) 关于pytho

python - 你能像往常一样制作一个python子进程输出stdout和stderr,但也可以将输出捕获为字符串吗?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Wrapsubprocess'stdout/stderr在thisquestion,hanan-n询问是否有可能有一个python子进程输出到标准输出,同时还将输出保存在字符串中以供以后处理。这种情况下的解决方案是遍历每个输出行并手动打印它们:output=[]p=subprocess.Popen(["the","command"],stdout=subprocess.PIPE)forlineiniter(p.stdout.readline,''):print(line)output.append(line)

python - Python csv writer 是否总是使用 DOS 行尾字符?

我意识到Python中的csv库总是生成DOS行尾字符。即使我使用'wb'模式,即使我使用Linux。importcsvf=open('output.txt','wb');writer=csv.writer(f)writer.writerow([2,3,4]);f.close()上面的代码总是使用'\r\n'作为行尾分隔符。我怎样才能让它只使用'\n'? 最佳答案 您可以giveyourwriter实例化自定义lineterminator构造函数中的参数:writer=csv.writer(f,lineterminator="\n"

python - 将子进程 stderr 重定向到 stdout

我想将子进程的标准错误输出重定向到标准输出。常数STDOUT应该这样做,不是吗?然而,$python>/dev/null-c'importsubprocess;\subprocess.call(["ls","/404"],stderr=subprocess.STDOUT)'确实输出了一些东西。为什么会这样,我如何在标准输出上得到错误信息? 最佳答案 在Python仔细阅读sourcecode给出了答案。特别是documentation当它说:subprocess.STDOUTSpecialvaluethat(...)indicate

python - 运行包含管道的命令行并将结果显示到 STDOUT

如何从Python调用包含管道的shell命令并捕获输出?假设命令类似于:catfile.log|tail-1Perl相当于我正在尝试做的事情是这样的:my$string=`catfile.log|tail-1`; 最佳答案 使用subprocess.PIPE,如子流程文档部分"Replacingshellpipeline"中所述:importsubprocessp1=subprocess.Popen(["cat","file.log"],stdout=subprocess.PIPE)p2=subprocess.Popen(["ta

python - csv.writer 在单独的列/单元格中写入单词的每个字符

目的:从models中所有行内的anchor标签中提取文本,并将其放入csv中。我正在尝试这段代码:withopen('Sprint_data.csv','ab')ascsvfile:spamwriter=csv.writer(csvfile)models=soup.find_all('li',{"class":"phoneListing"})formodelinmodels:model_name=unicode(u''.join(model.a.stripped_strings)).encode('utf8').strip()spamwriter.writerow(unicode(u

Python 3 TypeError : must be str, not bytes with sys.stdout.write()

我正在寻找一种从python脚本运行外部进程并在执行期间打印其标准输出消息的方法。下面的代码有效,但在运行时不打印标准输出。当它退出时,我收到以下错误:sys.stdout.write(nextline)TypeError:mustbestr,notbytesp=subprocess.Popen(["demo.exe"],stdout=subprocess.PIPE,stderr=subprocess.PIPE)#PollprocessfornewoutputuntilfinishedwhileTrue:nextline=p.stdout.readline()ifnextline=='

python - 从程序内部的Python(如Python -U中)未封闭的Stdout

这个问题在这里已经有了答案:Disableoutputbuffering(16个答案)封闭7个月前。是否有任何方法可以从我的代码中获取python-u的效果?如果失败,我的程序是否可以在-U模式下检查它是否运行,并在错误消息中退出吗?这是在Linux上(Ubuntu8.10服务器)。 最佳答案 我能想到的最好的:>>>importos>>>importsys>>>unbuffered=os.fdopen(sys.stdout.fileno(),'w',0)>>>unbuffered.write('test')test>>>>>>sy

python - 如何很好地处理 `with open(...)` 和 `sys.stdout`?

通常我需要将数据输出到文件,或者,如果未指定文件,则输出到标准输出。我使用以下代码段:iftarget:withopen(target,'w')ash:h.write(content)else:sys.stdout.write(content)我想重写它并统一处理两个目标。理想情况下应该是:withopen(target,'w')ash:h.write(content)但这不会很好,因为离开withblock时sys.stdout已关闭,我不希望那样。我也不想stdout=open(target,'w')...因为我需要记住恢复原始标准输出。相关:Redirectstdouttoafi

python - 在python中将stdout重定向到 "nothing"

我有一个由足够多的模块组成的大型项目,每个模块都会向标准输出打印一些内容。现在随着项目规模的扩大,没有大的。print语句在标准输出上打印了很多,这使得程序相当慢。所以,我现在想在runtime决定是否将任何内容打印到标准输出。我无法对模块进行更改,因为它们有很多。(我知道我可以将标准输出重定向到一个文件,但即使这样也相当慢。)所以我的问题是如何将标准输出重定向到无,即如何使print语句什么都不做?#Iwanttodosomethinglikethis.sys.stdout=None#thisobviouslywillgiveanerrorasNonetypeobjectdoesno