Tôi muốn chạy một tập lệnh, về cơ bản hiển thị đầu ra như thế này:
Installing XXX... [DONE]
Hiện tại, tôi in
def install_xxx[]:
print "Installing XXX... ",
install_xxx[]
print "[DONE]"
6 trước và sau đó tôi in def install_xxx[]:
print "Installing XXX... ",
install_xxx[]
print "[DONE]"
7.Tuy nhiên, bây giờ tôi muốn in
def install_xxx[]:
print "Installing XXX... ",
install_xxx[]
print "[DONE]"
8 và def install_xxx[]:
print "Installing XXX... ",
install_xxx[]
print "[DONE]"
7 trên cùng một dòng.Bất kỳ ý tưởng?
Ivanleoncz
8.1975 Huy hiệu vàng53 Huy hiệu bạc48 Huy hiệu đồng5 gold badges53 silver badges48 bronze badges
Hỏi ngày 8 tháng 4 năm 2011 lúc 16:38Apr 8, 2011 at 16:38
2
Giải pháp Python 3
Hàm
print 'something',
...
print ' else',
0 chấp nhận tham số print 'something',
...
print ' else',
1 mặc định là print 'something',
...
print ' else',
2 [dòng mới]. Đặt nó thành một chuỗi trống ngăn nó phát hành một dòng mới ở cuối dòng.def install_xxx[]:
print["Installing XXX... ", end="", flush=True]
install_xxx[]
print["[DONE]"]
Giải pháp Python 2
Việc đặt dấu phẩy vào cuối dòng
print 'something',
...
print ' else',
0 ngăn không cho print 'something',
...
print ' else',
0 phát hành một dòng mới [bạn nên lưu ý rằng sẽ có thêm một không gian ở cuối đầu ra].def install_xxx[]:
print "Installing XXX... ",
install_xxx[]
print "[DONE]"
Wouter
5202 Huy hiệu vàng13 Huy hiệu bạc22 Huy hiệu đồng2 gold badges13 silver badges22 bronze badges
Đã trả lời ngày 8 tháng 4 năm 2011 lúc 16:56Apr 8, 2011 at 16:56
8
Bạn có thể chỉ cần sử dụng điều này:
print 'something',
...
print ' else',
và đầu ra sẽ là
something else
Không cần phải quá mức cần thiết bởi
print 'something',
...
print ' else',
5. Hãy chú ý đến biểu tượng dấu phẩy ở cuối.Python 3+
6 để loại bỏ dòng mới ở cuối. Đọc thêm bởi print 'something',
...
print ' else',
7 print 'something',
...
print ' else',
print 'something',
...
print ' else',
6 to remove the newline insert at the end. Read more by print 'something',
...
print ' else',
7Đã trả lời ngày 14 tháng 3 năm 2013 lúc 13:35Mar 14, 2013 at 13:35
Boldnikboldnikboldnik
2.4892 Huy hiệu vàng25 Huy hiệu bạc32 Huy hiệu Đồng2 gold badges25 silver badges32 bronze badges
9
Bạn nên sử dụng char backspace '\ r' hoặc ['\ x08'] để quay lại vị trí trước đó trong đầu ra bảng điều khiển\r' or ['\x08'] char to go back on previous position in console output
Python 2+:
import time
import sys
def backspace[n]:
sys.stdout.write[[b'\x08' * n].decode[]] # use \x08 char to go back
for i in range[101]: # for 0 to 100
s = str[i] + '%' # string for output
sys.stdout.write[s] # just print
sys.stdout.flush[] # needed for flush when using \x08
backspace[len[s]] # back n chars
time.sleep[0.2] # sleep for 200ms
Python 3:
import time
def backline[]:
print['\r', end=''] # use '\r' to go back
for i in range[101]: # for 0 to 100
s = str[i] + '%' # string for output
print[s, end=''] # just print and flush
backline[] # back to the beginning of line
time.sleep[0.2] # sleep for 200ms
Mã này sẽ tính từ 0% đến 100% trên một dòng. Giá trị cuối cùng sẽ là:
> python test.py
100%
Thông tin bổ sung về Flush trong trường hợp này ở đây: Tại sao các câu lệnh in Python có chứa 'end =' đối số hoạt động khác nhau trong các vòng lặp?
Vùng nhiệt đới
1.3081 Huy hiệu vàng8 Huy hiệu bạc26 Huy hiệu đồng1 gold badge8 silver badges26 bronze badges
Đã trả lời ngày 31 tháng 3 năm 2014 lúc 8:57Mar 31, 2014 at 8:57
VADIM ZIN4UKVADIM ZIN4UKVadim Zin4uk
1.66622 Huy hiệu bạc18 Huy hiệu đồng22 silver badges18 bronze badges
3
Sử dụng
print 'something',
...
print ' else',
8 và print 'something',
...
print ' else',
9. Theo cách này, bạn phải thêm dòng mới bằng tay với something else
0 nếu bạn muốn tạo lại chức năng in. Tôi nghĩ rằng nó có thể là không cần thiết khi sử dụng những lời nguyền chỉ cho việc này.
Mgilson
291K63 Huy hiệu vàng610 Huy hiệu bạc677 Huy hiệu Đồng63 gold badges610 silver badges677 bronze badges
Đã trả lời ngày 8 tháng 4 năm 2011 lúc 16:42Apr 8, 2011 at 16:42
Ferostarferostarferostar
7.0467 Huy hiệu vàng37 Huy hiệu bạc61 Huy hiệu Đồng7 gold badges37 silver badges61 bronze badges
1
Đơn giản nhất:
Python 3
print['\r' + 'something to be override', end='']
Điều đó có nghĩa là nó sẽ quay lại con trỏ để bắt đầu, hơn là sẽ in một cái gì đó và sẽ kết thúc trong cùng một dòng. Nếu trong một vòng lặp, nó sẽ bắt đầu in ở cùng một nơi, nó bắt đầu.
Đã trả lời ngày 6 tháng 11 năm 2018 lúc 19:15Nov 6, 2018 at 19:15
SunflorosunfloroSunfloro
6801 Huy hiệu vàng8 Huy hiệu bạc11 Huy hiệu đồng1 gold badge8 silver badges11 bronze badges
2
Không có câu trả lời nào làm việc cho tôi vì tất cả họ đều dừng lại cho đến khi gặp phải một dòng mới. Tôi đã viết một người trợ giúp đơn giản:
def print_no_newline[string]:
import sys
sys.stdout.write[string]
sys.stdout.flush[]
Để kiểm tra nó:
def install_xxx[]:
print["Installing XXX... ", end="", flush=True]
install_xxx[]
print["[DONE]"]
0"Xin chào" trước tiên sẽ in ra và xả ra màn hình trước khi ngủ. Sau đó, bạn có thể sử dụng in tiêu chuẩn.
Đã trả lời ngày 22 tháng 7 năm 2013 lúc 18:23Jul 22, 2013 at 18:23
Hyprnickhyprnickhyprnick
2.5832 Huy hiệu vàng20 Huy hiệu bạc18 Huy hiệu đồng2 gold badges20 silver badges18 bronze badges
1
Python nối thêm Newline như một kết thúc để in. Sử dụng end = '' cho python3 cho phương thức in để nối một không gian thay vì đường mới. Đối với python2 sử dụng dấu phẩy ở cuối câu lệnh in.
def install_xxx[]:
print["Installing XXX... ", end="", flush=True]
install_xxx[]
print["[DONE]"]
1
Pikamander2
6.5513 Huy hiệu vàng43 Huy hiệu bạc65 Huy hiệu Đồng3 gold badges43 silver badges65 bronze badges
Đã trả lời ngày 24 tháng 12 năm 2019 lúc 0:29Dec 24, 2019 at 0:29
MrkullimrkulliMrKulli
72910 Huy hiệu bạc18 Huy hiệu đồng10 silver badges18 bronze badges
Ví dụ đơn giản này sẽ in 1-10 trên cùng một dòng.
def install_xxx[]:
print["Installing XXX... ", end="", flush=True]
install_xxx[]
print["[DONE]"]
2Đã trả lời ngày 15 tháng 5 năm 2018 lúc 7:01May 15, 2018 at 7:01
In có một đối số
print 'something',
...
print ' else',
1 tùy chọn, đó là những gì được in cuối cùng. Mặc định là một dòng mới, nhưng bạn có thể thay đổi nó thành chuỗi trống. ví dụ. something else
2
kaya3
43,9K4 Huy hiệu vàng57 Huy hiệu bạc87 Huy hiệu đồng4 gold badges57 silver badges87 bronze badges
Đã trả lời ngày 27 tháng 2 năm 2015 lúc 16:44Feb 27, 2015 at 16:44
TULKINRBTULKINRBTulkinRB
5901 Huy hiệu vàng6 Huy hiệu bạc10 Huy hiệu đồng1 gold badge6 silver badges10 bronze badges
1
Nếu bạn muốn ghi đè lên dòng trước đó [thay vì liên tục thêm vào nó], bạn có thể kết hợp
something else
3 với something else
4 ở cuối câu lệnh in. Ví dụ,def install_xxx[]:
print["Installing XXX... ", end="", flush=True]
install_xxx[]
print["[DONE]"]
3Sẽ đếm 0 đến 9, thay thế số cũ trong bảng điều khiển.
something else
5 sẽ in trên cùng một dòng với bộ đếm cuối cùng, 9.Trong trường hợp của bạn cho OP, điều này sẽ cho phép bảng điều khiển hiển thị phần trăm hoàn thành cài đặt dưới dạng "thanh tiến trình", trong đó bạn có thể xác định vị trí ký tự bắt đầu và kết thúc và cập nhật các điểm đánh dấu ở giữa.
def install_xxx[]:
print["Installing XXX... ", end="", flush=True]
install_xxx[]
print["[DONE]"]
4Đã trả lời ngày 9 tháng 10 năm 2015 lúc 16:18Oct 9, 2015 at 16:18
Dưới đây là phiên bản tương thích 2.7 có nguồn gốc từ phiên bản 3.0 bởi @vadim-zin4uk:
Python 2
def install_xxx[]:
print["Installing XXX... ", end="", flush=True]
install_xxx[]
print["[DONE]"]
5Đối với vấn đề đó, giải pháp 3.0 được cung cấp có vẻ hơi đầy hơi. Ví dụ, phương pháp backspace không sử dụng đối số số nguyên và có thể hoàn toàn có thể được thực hiện với hoàn toàn.
Python 3
def install_xxx[]:
print["Installing XXX... ", end="", flush=True]
install_xxx[]
print["[DONE]"]
6Điều đó có nghĩa là nó sẽ quay lại con trỏ để bắt đầu, hơn là sẽ in một cái gì đó và sẽ kết thúc trong cùng một dòng. Nếu trong một vòng lặp, nó sẽ bắt đầu in ở cùng một nơi, nó bắt đầu.
Đã trả lời ngày 6 tháng 11 năm 2018 lúc 19:15Jan 10, 2018 at 19:47
SunflorosunfloroDannid
6801 Huy hiệu vàng8 Huy hiệu bạc11 Huy hiệu đồng17 silver badges17 bronze badges
Không có câu trả lời nào làm việc cho tôi vì tất cả họ đều dừng lại cho đến khi gặp phải một dòng mới. Tôi đã viết một người trợ giúp đơn giản:
Để kiểm tra nó:
print 'something',
...
print ' else',
0 là một chức năng trong Python 3. Trong Python 2 [bất kỳ phiên bản nào bạn quan tâm đến việc sử dụng], import time
import sys
def backspace[n]:
sys.stdout.write[[b'\x08' * n].decode[]] # use \x08 char to go back
for i in range[101]: # for 0 to 100
s = str[i] + '%' # string for output
sys.stdout.write[s] # just print
sys.stdout.flush[] # needed for flush when using \x08
backspace[len[s]] # back n chars
time.sleep[0.2] # sleep for 200ms
8 có thể bị buộc vào một hàm bằng cách nhập định nghĩa của nó từ mô -đun import time
import sys
def backspace[n]:
sys.stdout.write[[b'\x08' * n].decode[]] # use \x08 char to go back
for i in range[101]: # for 0 to 100
s = str[i] + '%' # string for output
sys.stdout.write[s] # just print
sys.stdout.flush[] # needed for flush when using \x08
backspace[len[s]] # back n chars
time.sleep[0.2] # sleep for 200ms
9. Lợi ích của hàm import time
import sys
def backspace[n]:
sys.stdout.write[[b'\x08' * n].decode[]] # use \x08 char to go back
for i in range[101]: # for 0 to 100
s = str[i] + '%' # string for output
sys.stdout.write[s] # just print
sys.stdout.flush[] # needed for flush when using \x08
backspace[len[s]] # back n chars
time.sleep[0.2] # sleep for 200ms
8 là bạn có thể chỉ định những gì sẽ in ở cuối, ghi đè hành vi mặc định của print 'something',
...
print ' else',
2 để in một dòng mới ở cuối mỗi cuộc gọi print 'something',
...
print ' else',
0.import time
def backline[]:
print['\r', end=''] # use '\r' to go back
for i in range[101]: # for 0 to 100
s = str[i] + '%' # string for output
print[s, end=''] # just print and flush
backline[] # back to the beginning of line
time.sleep[0.2] # sleep for 200ms
3 bảo Python xóa đầu ra của đầu ra tiêu chuẩn, đó là nơi bạn gửi đầu ra với print 'something',
...
print ' else',
0 trừ khi bạn chỉ định khác. Bạn cũng có thể nhận được hành vi tương tự bằng cách chạy với import time
def backline[]:
print['\r', end=''] # use '\r' to go back
for i in range[101]: # for 0 to 100
s = str[i] + '%' # string for output
print[s, end=''] # just print and flush
backline[] # back to the beginning of line
time.sleep[0.2] # sleep for 200ms
5 hoặc thiết lập biến môi trường import time
def backline[]:
print['\r', end=''] # use '\r' to go back
for i in range[101]: # for 0 to 100
s = str[i] + '%' # string for output
print[s, end=''] # just print and flush
backline[] # back to the beginning of line
time.sleep[0.2] # sleep for 200ms
6, do đó bỏ qua các cuộc gọi print 'something',
...
print ' else',
5 và import time
def backline[]:
print['\r', end=''] # use '\r' to go back
for i in range[101]: # for 0 to 100
s = str[i] + '%' # string for output
print[s, end=''] # just print and flush
backline[] # back to the beginning of line
time.sleep[0.2] # sleep for 200ms
8. Số tiền bạn đạt được bằng cách làm điều đó gần như chính xác bằng không và không dễ gỡ lỗi nếu bạn thuận tiện quên rằng bạn phải thực hiện bước đó trước khi ứng dụng của bạn hoạt động đúng.Và một mẫu. Lưu ý rằng điều này chạy hoàn hảo trong Python 2 hoặc 3.
def install_xxx[]:
print["Installing XXX... ", end="", flush=True]
install_xxx[]
print["[DONE]"]
7Đã trả lời ngày 25 tháng 10 năm 2017 lúc 18:20Oct 25, 2017 at 18:20
1
Giải pháp này trong Python 3.x Cụ thể:
Khi tôi cần làm điều này, thường tôi sẽ chỉ sử dụng
def install_xxx[]:
print["Installing XXX... ", end="", flush=True]
install_xxx[]
print["[DONE]"]
8Ví dụ:
def install_xxx[]:
print["Installing XXX... ", end="", flush=True]
install_xxx[]
print["[DONE]"]
9Điều này xuất bản như:
def install_xxx[]:
print "Installing XXX... ",
install_xxx[]
print "[DONE]"
0Không gian trong
import time
def backline[]:
print['\r', end=''] # use '\r' to go back
for i in range[101]: # for 0 to 100
s = str[i] + '%' # string for output
print[s, end=''] # just print and flush
backline[] # back to the beginning of line
time.sleep[0.2] # sleep for 200ms
9 có thể được thay thế bằng bất kỳ ký tự nào. Ví dụ,def install_xxx[]:
print "Installing XXX... ",
install_xxx[]
print "[DONE]"
1Đầu ra nào như:
def install_xxx[]:
print "Installing XXX... ",
install_xxx[]
print "[DONE]"
2
Dharman ♦♦
28.5K21 Huy hiệu vàng78 Huy hiệu bạc129 Huy hiệu đồng21 gold badges78 silver badges129 bronze badges
Đã trả lời ngày 22 tháng 7 năm 2021 lúc 19:39Jul 22, 2021 at 19:39
Alioalioalio
Phù hiệu bằng đồng 11466 bronze badges
print 'something',
...
print ' else',
0 có một tham số tích hợp "kết thúc" theo mặc định được đặt thành something else
0 gọi > python test.py
100%
2 thực sự đang gọi > python test.py
100%
3. Một cách dễ dàng để làm là gọi > python test.py
100%
4
Ryan Lee
Huy hiệu đồng bạc 1971 Silver81 silver badge8 bronze badges
Đã trả lời ngày 23 tháng 7 năm 2019 lúc 22:35Jul 23, 2019 at 22:35
Chỉ trong trường hợp bạn đã lưu trữ trước các giá trị trong một mảng, bạn có thể gọi chúng theo định dạng sau:
def install_xxx[]:
print "Installing XXX... ",
install_xxx[]
print "[DONE]"
3Đã trả lời ngày 16 tháng 10 năm 2016 lúc 23:20Oct 16, 2016 at 23:20
Đã tìm thấy bài đăng Quora này, với ví dụ này đã làm việc cho tôi [Python 3], gần với những gì tôi cần nó [tức là xóa toàn bộ dòng trước đó].
Ví dụ họ cung cấp:
def install_xxx[]:
print "Installing XXX... ",
install_xxx[]
print "[DONE]"
4Để in trên cùng một dòng, như những người khác đã đề xuất, chỉ cần sử dụng
> python test.py
100%
5Đã trả lời ngày 14 tháng 11 năm 2019 lúc 18:15Nov 14, 2019 at 18:15
MIRCEAMIRICEAMircea
9241 Huy hiệu vàng13 Huy hiệu bạc17 Huy hiệu đồng1 gold badge13 silver badges17 bronze badges
Tôi đã tìm thấy giải pháp này và nó đang hoạt động trên Python 2.7
def install_xxx[]:
print "Installing XXX... ",
install_xxx[]
print "[DONE]"
5
ideasman42
38.3k36 Huy hiệu vàng178 Huy hiệu bạc299 Huy hiệu đồng36 gold badges178 silver badges299 bronze badges
Đã trả lời ngày 7 tháng 12 năm 2016 lúc 12:51Dec 7, 2016 at 12:51
Luis Silvaluis SilvaLuis Silva
91 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 bronze badges
1