问题出在标题中.
我想在python中做到这一点 .我想在c中的这个例子中做些什么:
#include <stdio.h>
int main() {
int i;
for (i=0; i<10; i++) printf(".");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
..........
Run Code Online (Sandbox Code Playgroud)
在Python中:
>>> for i in xrange(0,10): print '.'
.
.
.
.
.
.
.
.
.
.
>>> for i in xrange(0,10): print '.',
. . . . . . . . . .
Run Code Online (Sandbox Code Playgroud)
在Python中print会添加一个\n或一个空格,我该如何避免呢?现在,这只是一个例子.不要告诉我,我可以先构建一个字符串然后打印它.我想知道如何"附加"字符串stdout.
我想运行一个脚本,它基本上显示如下内容:
Installing XXX... [DONE]
Run Code Online (Sandbox Code Playgroud)
现在,此刻,我在功能成功后使用print打印整行.但是,我现在希望它首先打印"安装xxx ...",并在功能运行之后添加"DONE"标签; 但是在同一条线上.
有任何想法吗?
我是python的新手,我正在编写一些脚本来自动从FTP服务器等下载文件.我想显示下载的进度,但我希望它保持在相同的位置,例如:
输出:
正在下载文件FooFile.txt [47%]
我试图避免这样的事情:
Downloading File FooFile.txt [47%]
Downloading File FooFile.txt [48%]
Downloading File FooFile.txt [49%]
Run Code Online (Sandbox Code Playgroud)
我应该怎么做呢?
如果我有以下代码:
for x in range(10):
print x
Run Code Online (Sandbox Code Playgroud)
我会得到的输出
1
2
etc..
Run Code Online (Sandbox Code Playgroud)
我想要做的是不是打印换行符,而是要替换之前的值并用同一行上的新值覆盖它.
我想将循环输出打印到同一行的屏幕上.
我如何以最简单的方式处理Python 3.x.
我知道这个问题已经被要求用于Python 2.7,在行的末尾使用逗号即打印I,但我找不到Python 3.x的解决方案.
i = 0
while i <10:
i += 1
## print (i) # python 2.7 would be print i,
print (i) # python 2.7 would be 'print i,'
Run Code Online (Sandbox Code Playgroud)
屏幕输出.
1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
我想要打印的是:
12345678910
Run Code Online (Sandbox Code Playgroud)
新读者访问此链接以及http://docs.python.org/release/3.0.1/whatsnew/3.0.html
我正在写一个简单的ftp下载器.代码的一部分是这样的:
ftp.retrbinary("RETR " + file_name, process)
Run Code Online (Sandbox Code Playgroud)
我正在调用函数进程来处理回调:
def process(data):
print os.path.getsize(file_name)/1024, 'KB / ', size, 'KB downloaded!'
file.write(data)
Run Code Online (Sandbox Code Playgroud)
和输出是这样的:
1784 KB / KB 1829 downloaded!
1788 KB / KB 1829 downloaded!
etc...
Run Code Online (Sandbox Code Playgroud)
但我希望它打印这一行,然后下次重新打印/刷新它所以它只显示一次,我将看到该下载的进度...
怎么做到呢?
我想知道是否有可能删除你用Python打印的项目 - 不是从Python GUI,而是从命令提示符.例如
a = 0
for x in range (0,3):
a = a + 1
b = ("Loading" + "." * a)
print (a)
Run Code Online (Sandbox Code Playgroud)
所以它打印
>>>Loading
>>>Loading.
>>>Loading..
>>>Loading...
Run Code Online (Sandbox Code Playgroud)
但是,我的问题是我希望这一切都在一条线上,为此它会在其他东西出现时自行删除它.因此,不是打印"Loading", "Loading.", "Loading...我希望它打印"Loading.",然后它删除行上的内容并替换它,"Loading.."然后删除"Loading.."并替换它(在同一行)"Loading...".这很难描述.
ps我试图使用Backspace字符,但它似乎不起作用("\b")
谢谢
SO中与此主题相关的大多数问题如下:
如何在不引入新行的情况下在同一行上打印一些信息
相反,我的问题如下:
我希望看到以下效果,
>> You have finished 10%
Run Code Online (Sandbox Code Playgroud)
在那里10不断增加的同时.我知道如何在C++中做到这一点,但在python中找不到一个好的解决方案.
在Unix上,我可以使用\ r(回车)或\ b(退格)来打印在shell中已经可见的文本(即再次覆盖当前行).
我可以从Python脚本在Windows命令行中实现相同的效果吗?
我尝试了curses模块,但它似乎在Windows上不可用.
\r在 Python 中,您可以使用移回行首在同一行上进行打印。
这对于进度条或增加百分比计数器非常有效,例如:Python print on same line
但是,当打印长度可能会减少的行时,这会将前几行文本保留在那里,例如:
import sys
for t in ['long line', '%']:
sys.stdout.write(t + '\r')
sys.stdout.write('\n')
Run Code Online (Sandbox Code Playgroud)
将终端文本保留为:%ong line。
打印到同一行时,在较长的行之后写较短的行的最佳方法是什么?
python ×10
printing ×3
python-3.x ×3
stdout ×2
command-line ×1
line-breaks ×1
newline ×1
overwrite ×1
progress-bar ×1
python-2.x ×1
python-3.2 ×1
refresh ×1
windows ×1