จะล้างคอนโซล interpreter ได้อย่างไร?


325

เช่นเดียวกับนักพัฒนางูหลามส่วนใหญ่ฉันมักจะเปิดหน้าต่างคอนโซลโดยที่ล่าม Python ทำงานเพื่อทดสอบคำสั่งdir()สิ่งของhelp() stuffฯลฯ

เช่นเดียวกับคอนโซลใด ๆ หลังจากไม่นานงานค้างที่มองเห็นได้ของคำสั่งในอดีตและงานพิมพ์จะได้รับความยุ่งเหยิงและบางครั้งก็เกิดความสับสนเมื่อรันคำสั่งเดิมซ้ำหลายครั้ง ฉันสงสัยว่าจะล้างคอนโซลตัวแปล Python ได้อย่างไรและอย่างไร

ฉันเคยได้ยินเกี่ยวกับการโทรของระบบและการโทรclsบน Windows หรือclearบน Linux แต่ฉันหวังว่าจะมีบางอย่างที่ฉันสามารถสั่งให้ล่ามทำ

หมายเหตุ:ฉันกำลังใช้งาน Windows ดังนั้นจึงCtrl+Lใช้งานไม่ได้


วิธีการแก้ปัญหา IPython ที่นี่: stackoverflow.com/questions/6892191/…
onewhaleid

ฉันประหลาดใจที่ไม่มีใครพูดถึงมัน แต่เมื่อคุณใช้ Ipython shell คุณสามารถทำ Ctrl + L แม้ใน windows
user93

คำตอบ:


442

ดังที่คุณกล่าวไว้คุณสามารถทำการโทรของระบบได้:

สำหรับ Windows

>>> import os
>>> clear = lambda: os.system('cls')
>>> clear()

สำหรับ Linux แลมบ์ดาจะกลายเป็น

>>> clear = lambda: os.system('clear')

1
คำตอบนี้ใกล้เคียงกับ 'วิญญาณ' ของสิ่งที่ฉันขอขอบคุณ
Soviut

1
+1, คำตอบที่ดี มีวิธีใช้มูลค่าส่งคืนเพื่อที่จะไม่แสดงหรือไม่ ฉันได้รับ '0' หลังจากทำงานชัดเจน
technomalogical

15
กำหนดไว้ในฟังก์ชั่นปกติแทนแลมบ์ดาไม่ควรแสดง '0' เนื่องจากค่าส่งคืนจะเป็นไม่มี
อัคบาร์อิบราฮิม

46
มีอะไรผิดปกติกับการใช้งานdef? ทำไมต้องใช้ a lambdaเมื่อ a defชัดเจน?
S.Lott

17
@Akbaribrahim เป็น None จะไม่ถูกพิมพ์ลองนี้:clear = lambda: os.system('cls') or None
enpenax

193

นี่คือสิ่งที่มีประโยชน์ซึ่งเป็นอีกข้ามแพลตฟอร์มเล็กน้อย

import os

def cls():
    os.system('cls' if os.name=='nt' else 'clear')

# now, to clear the screen
cls()

วิธีที่ยอดเยี่ยมในการทำสิ่งต่าง ๆ รวมสิ่งนี้กับคำแนะนำแลมบ์ดาด้านบนเพื่อบันทึกรหัสหนึ่งแถวซึ่งมีประโยชน์เหมือนนรก! ขอบคุณ! :)
Torxed

import os os.system('cls')
อย่านู Vy

1
ไม่ได้ตั้งค่าตัวแปรสภาพแวดล้อม TERM
Jonathan

87

นี่คือแฮ็คอย่างรวดเร็ว:

>>> clear = "\n" * 100
>>> print clear
>>> ...do some other stuff...
>>> print clear

หรือหากต้องการบันทึกการพิมพ์ให้วางไฟล์นี้ลงในพา ธ การค้นหาของคุณ

# wiper.py
class Wipe(object):
    def __repr__(self):
        return '\n'*1000

wipe = Wipe()

จากนั้นคุณสามารถทำสิ่งนี้ได้จากล่ามที่คุณชอบ :)

>>> from wiper import wipe
>>> wipe
>>> wipe
>>> wipe

12
ฮ่าฮ่ามันตลกดี ไม่ว่าสิ่งที่ฉันกำลังมองหา แต่ลองดี
Soviut

4
@Triptych: c = "\ n" * 100 มีประโยชน์, +1 สำหรับมัน ความคิดเห็นเล็ก ๆ มันจะเคลียร์และนำมาที่ด้านล่างของเชลล์ฉันชอบที่จะเริ่มต้นจากด้านบนของเชลล์
pythonbeginer

1
หรือถ้าเทอร์มินัลอีมูเลเตอร์ของคุณตีความ ANSI ให้ทำดังนี้:"\x1B[H\x1B[J"
Alba Mendez

8
แม้จะมีคนหัวเราะ แต่การพิมพ์บรรทัดใหม่จำนวนมากเป็นสิ่งที่กระบวนการภายนอกclearและclsทำ นี่คือวิธีที่จะทำ (เพียงแค่พิมพ์หรือฟังก์ชั่นที่มีการเรียกร้องการพิมพ์ที่ไม่ assigining กับ "ชัดเจน" สตริงของหลักสูตร)
jsbueno

4
@jsbueno ไม่มันไม่ใช่ อาจจะเป็นบน windows (แม้ว่าฉันสงสัยว่ามันมี API เพื่อล้างคอนโซล) ในระบบอื่นทั้งหมดให้clearส่งคำสั่งที่ล้างหน้าจอ โดยไม่ต้องทิ้งบัฟเฟอร์เลื่อนกลับ \33[3J\33[H\33[2Jในระบบของฉันมันจะออกผลลัพธ์ลำดับการควบคุมนี้: นั่นคือ: [erase scrollback] [reset cursor position] [erase screen]. สามารถละเว้นการใช้[erase scrollback] clear -x
สเปกตรัม

28

แม้ว่านี่จะเป็นคำถามที่เก่ากว่า แต่ฉันคิดว่าฉันมีส่วนร่วมในการสรุปสิ่งที่ฉันคิดว่าเป็นคำตอบที่ดีที่สุดและเพิ่มริ้วรอยของฉันเองโดยแนะนำให้คุณใส่คำสั่งเหล่านี้ลงในไฟล์และตั้ง PYTHONSTARTUP ของคุณ ตัวแปรสภาพแวดล้อมจะชี้ไปที่มัน เนื่องจากฉันอยู่บน Windows ในขณะนี้มันมีอคติเล็กน้อย แต่สามารถเอียงทิศทางอื่นได้อย่างง่ายดาย

นี่คือบางบทความที่ฉันพบว่าอธิบายวิธีการตั้งค่าตัวแปรสภาพแวดล้อมบน Windows:
    เมื่อใดจึงจะใช้ sys.path.append และเมื่อทำการปรับเปลี่ยน% PYTHONPATH% ก็เพียงพอแล้ว
    วิธีการจัดการตัวแปรสภาพแวดล้อมใน Windows XP การ
    กำหนดค่าระบบและตัวแปรสภาพแวดล้อมของผู้
    ใช้ ตัวแปรสภาพแวดล้อมใน Windows

BTW อย่าใส่เครื่องหมายคำพูดรอบ ๆ พา ธ ไปยังไฟล์แม้ว่าจะมีช่องว่างอยู่ก็ตาม

อย่างไรก็ตามต่อไปนี้เป็นรหัสของฉันที่จะใส่ (หรือเพิ่มไปยังสคริปต์เริ่มต้น Python ของคุณที่มีอยู่:

# ==== pythonstartup.py ====

# add something to clear the screen
class cls(object):
    def __repr__(self):
        import os
        os.system('cls' if os.name == 'nt' else 'clear')
        return ''

cls = cls()

# ==== end pythonstartup.py ====

BTW คุณสามารถใช้เคล็ดลับของ @ Triptych__repr__เพื่อเปลี่ยนexit()เป็นเพียงexit(และเหมือนกันสำหรับนามแฝงquit):

class exit(object):
    exit = exit # original object
    def __repr__(self):
        self.exit() # call original
        return ''

quit = exit = exit()

สุดท้ายนี้คือสิ่งอื่นที่เปลี่ยนพรอมต์หลักจาก>>>เป็นcwd + >>>:

class Prompt:
    def __str__(self):
        import os
        return '%s >>> ' % os.getcwd()

import sys
sys.ps1 = Prompt()
del sys
del Prompt

นี่อาจเป็นคำตอบที่ดีที่สุด - การรวมกันของเทคนิคจากคำตอบอื่น ๆ PYTHONSTARTUP + repr + os.system ('cls') ดีมาก.
Triptych

@Triptych: หนึ่งในผลข้างเคียงที่น่าสนใจของการใช้__repr__และ / หรือ__str__วิธีนี้คือถ้าคุณพิมพ์>>> vars()ที่คอนโซลแปลมันจะดำเนินการคำสั่งทั้งหมดที่กำหนดไว้ ในระบบของฉันมันล้างหน้าจอแล้วออกจากคอนโซล เอาฉันในขณะที่จะคิดออกห่าที่เกิดขึ้น ....
มาร์ติโน

น่าสนใจ ผมเห็นปัญหานี้ยังนำไปใช้และlocals() globals()มัณฑนากรง่าย ๆ รอบฟังก์ชั่นเหล่านี้ที่ลบชื่อและกำหนดใหม่หลังจากการเรียกใช้ฟังก์ชั่นเป็นวิธีแก้ปัญหาที่เป็นไปได้ ...
Triptych

@Triptych: ความคิดมัณฑนากรดูเหมือนจะไม่ทำงานอย่างน้อยกับความพยายามของฉัน การหาทางเลือกที่มีศักยภาพเป็นการพิสูจน์ให้เห็นแล้วว่าเป็นการยาก
martineau

ฉันมีวิธีการแก้ปัญหาผู้สมัครที่เพียงแค่ munges ผลลัพธ์ของ vars () globals () และ locals () โทรชั่วคราว: gist.github.com/4172781
Triptych

28

คุณมีหลายวิธีที่ทำได้บน Windows:

1. การใช้แป้นพิมพ์ลัด:

Press CTRL + L

2. การใช้วิธีเรียกใช้ระบบ:

import os
cls = lambda: os.system('cls')
cls()

3. การใช้การพิมพ์บรรทัดใหม่ 100 ครั้ง:

cls = lambda: print('\n'*100)
cls()

5
วิธีทั้งหมดเหล่านี้เป็น ... naff clsจะทำงานบน windows และทำให้โปรแกรมของคุณยากที่จะข้ามแพลตฟอร์มการพิมพ์ 100 newlinesเป็นเพียง ... eww? และแป้นพิมพ์ลัดไม่ได้ใช้ในโปรแกรม
ลุค

22

วิธีที่เร็วและง่ายที่สุดโดยไม่ต้องสงสัยเป็น+CtrlL

นี่เป็นสิ่งเดียวกันสำหรับ OS X บนเทอร์มินัล


3
ฉันลองใช้วิธีนี้โดยใช้ตัวอักษร L หรือเล็กด้วยปุ่ม ctrl บน windows 8.1 มันไม่ทำงานสำหรับฉัน ฉันเพิ่งเปิดและปิดหน้าต่างเชลล์เพื่อล้างมัน
Chris22

2
บน OS X, Ctrl + L จะเทอร์มินัลจนกระทั่งจอแสดงผลชัดเจน คุณยังสามารถเลื่อนขึ้นเพื่อดูประวัติ ใช้ Cmd + K เพื่อล้างหน้าจอและประวัติการพิมพ์ รายการปุ่มลัดของเทอร์มินัล OS X ที่สมบูรณ์ยิ่งขึ้น
Andrew Franklin

2
ทำงานได้อย่างสวยงามสำหรับฉันใน Ubuntu Desktop 16
Nam G VU

15

วิธีการของฉันในการทำเช่นนี้คือการเขียนฟังก์ชั่นดังนี้:

import os
import subprocess

def clear():
    if os.name in ('nt','dos'):
        subprocess.call("cls")
    elif os.name in ('linux','osx','posix'):
        subprocess.call("clear")
    else:
        print("\n") * 120

จากนั้นโทรclear()เพื่อล้างหน้าจอ สิ่งนี้ใช้ได้กับ windows, osx, linux, bsd ... ทุกระบบปฏิบัติการ


คุณอาจหมายถึงos.name in ('linux','osx')และอาจต้องการเพิ่ม'posix'เช่นกัน
rsanden

@rsanden 'linux' และ 'osx' ครอบคลุมการใช้งานของทุกคนในระบบปฏิบัติการ
MartinUbuntu

ฉันใช้ Ubuntu 15.04 และos.name == 'posix'ทั้งไพ ธ อน 2.7.9 และ 3.4.3
rsanden

@rsanden เพิ่ม posix
MartinUbuntu

9

ต่อไปนี้เป็นแพลตฟอร์มไขว้ (Windows / Linux / Mac / อาจเป็นอย่างอื่นที่คุณสามารถเพิ่มในการตรวจสอบถ้า) ตัวอย่างข้อมูลฉันทำรวมข้อมูลที่พบในคำถามนี้:

import os
clear = lambda: os.system('cls' if os.name=='nt' else 'clear')
clear()

ความคิดเดียวกัน แต่ด้วยน้ำตาลทรายประโยคหนึ่ง:

import subprocess   
clear = lambda: subprocess.call('cls||clear', shell=True)
clear()

8

ที่ปัดน้ำฝนเย็นดีเกี่ยวกับมันฉันไม่ต้องพิมพ์ '()' รอบ ๆ มัน นี่คือการเปลี่ยนแปลงเล็กน้อยกับมัน

# wiper.py
import os
class Cls(object):
    def __repr__(self):
        os.system('cls')
        return ''

การใช้งานค่อนข้างง่าย:

>>> cls = Cls()
>>> cls # this will clear console.

2
class clsฉันชื่อมัน
martineau

1
ฉันชื่ออินสแตนซ์ของที่จะเป็นclass Cls clscls = Cls()
Amol

ยกเว้นว่าจะทำให้เนมสเปซเริ่มต้นมีสองสิ่งแทนที่จะเป็นหนึ่ง ... สองเท่า
martineau

@Amol ผมเคยใช้ของคุณและเทคนิคอื่น ๆ ในการแก้ปัญหาของฉัน คุณสามารถทำได้แล้วclass cls cls=cls()
Alba Mendez

8

นี่คือสิ่งที่ง่ายที่สุดที่คุณสามารถทำได้และไม่ต้องการไลบรารีเพิ่มเติม มันจะล้างหน้าจอและกลับ>>>ไปที่มุมซ้ายบน

print("\033[H\033[J")

นี่เป็นข้อดีที่ใช้ใน Spyder
Graham G

7

สำหรับผู้ใช้ mac ภายในประเภทคอนโซลหลาม

import os
os.system('clear')

สำหรับ windows

os.system('cls')

5

นี่เป็นวิธีการแก้ปัญหาที่ชัดเจนที่รวมคำตอบอื่น ๆ ทั้งหมด คุณสมบัติ:

  1. คุณสามารถคัดลอกวางรหัสลงในเชลล์หรือสคริปต์ของคุณ
  2. คุณสามารถใช้มันได้ตามที่คุณต้องการ:

    >>> clear()
    >>> -clear
    >>> clear  # <- but this will only work on a shell
  3. คุณสามารถนำเข้าเป็นโมดูล:

    >>> from clear import clear
    >>> -clear
  4. คุณสามารถเรียกมันเป็นสคริปต์:

    $ python clear.py
  5. มันเป็นความหลากหลายอย่างแท้จริง ; ถ้ามันไม่สามารถรับรู้ระบบของคุณ
    ( ce, nt, dosหรือposix) มันจะถอยกลับไปพิมพ์บรรทัดว่าง


คุณสามารถดาวน์โหลดไฟล์ [เต็ม] ได้ที่นี่: https://gist.github.com/3130325
หรือหากคุณแค่มองหารหัส:

class clear:
 def __call__(self):
  import os
  if os.name==('ce','nt','dos'): os.system('cls')
  elif os.name=='posix': os.system('clear')
  else: print('\n'*120)
 def __neg__(self): self()
 def __repr__(self):
  self();return ''

clear=clear()


4

ใช้งานว่าง มันมีคุณสมบัติที่มีประโยชน์มากมาย Ctrl+F6ตัวอย่างเช่นรีเซ็ตคอนโซล การปิดและเปิดคอนโซลเป็นวิธีที่ดีในการล้างข้อมูล


คุณจะทำอย่างนั้นบนว่างได้อย่างไร เพียงแค่ปิดและเปิดใหม่
Andrea Ambu

5
ไม่มีF6ไม่ได้ตั้งค่าคอนโซลไม่ได้ใช้งาน แต่CTRL+F6ไม่ น่าเสียดายที่นี่ไม่ได้ล้างหน้าจอ D'โอ้! (Python Win32 Idle เวอร์ชัน 2.6.2, 2.7.1, 3.2)
ridgerunner

4

ฉันไม่แน่ใจว่า Windows "" shell "รองรับสิ่งนี้หรือไม่ แต่บน Linux:

print "\033[2J"

https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes

ในความเห็นของฉันโทรclsด้วยosเป็นความคิดที่ไม่ดีโดยทั่วไป ลองนึกภาพถ้าฉันจัดการเพื่อเปลี่ยน cls หรือคำสั่งที่ชัดเจนในระบบของคุณและคุณเรียกใช้สคริปต์ของคุณในฐานะผู้ดูแลระบบหรือราก


ฉันเห็นด้วย cls ไม่เหมาะในกรณีนี้และ ANSI escape sequence นั้นดีกว่า โดยเฉพาะอย่างยิ่งการใช้ระบบปฏิบัติการเพื่อเรียกใช้กระบวนการใหม่นั้นเป็นการดำเนินการที่ค่อนข้างแพงเมื่อเทียบกับการกดสองสามไบต์ไปยัง stdout
silviot

2

ฉันใช้ MINGW / BASH บน Windows XP, SP3

(ติดที่. pythonstartup)
# ctrl-l ของฉันทำงานแล้ว แต่สิ่งนี้อาจช่วยคนอื่น
# ทำให้พรอมต์ที่ด้านล่างของหน้าต่างแม้ว่า ...
นำเข้า readline
readline.parse_and_bind ('\ Cl: ล้างหน้าจอ')

# ใช้งานได้ใน BASH เพราะฉันมี. inputrc ด้วยเช่นกัน แต่
ด้วยเหตุผล # บางอย่างมันจะลดลงเมื่อฉันเข้าสู่ Python
readline.parse_and_bind ('\ Cy: kill-whole-line')


ฉันทนพิมพ์ 'exit ()' ไม่ได้อีกต่อไปและรู้สึกยินดีกับกลอุบายของ Martineau / Triptych:

ฉันเล็กน้อยมันแม้ว่า (ติดอยู่ใน. งูเหลือมเริ่มต้น)

class exxxit():
    """Shortcut for exit() function, use 'x' now"""
    quit_now = exit # original object
    def __repr__(self):
        self.quit_now() # call original
x = exxxit()

Py2.7.1>help(x)
Help on instance of exxxit in module __main__:

class exxxit
 |  Shortcut for exit() function, use 'x' now
 |
 |  Methods defined here:
 |
 |  __repr__(self)
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  quit_now = Use exit() or Ctrl-Z plus Return to exit

2

คำสั่งระบบปฏิบัติการclearใน Linux และclsใน Windows แสดงผล "สตริงมายากล" ซึ่งคุณสามารถพิมพ์ได้ ในการรับสตริงให้รันคำสั่งด้วย popen และบันทึกไว้ในตัวแปรเพื่อใช้ในภายหลัง:

from os import popen
with popen('clear') as f:
    clear = f.read()

print clear

'\x1b[H\x1b[2J'ในเครื่องของฉันสตริง


1
1)สตริงมายากลนั่นคือลำดับ ANSI \x1b[Hหมายถึง "เลื่อนเคอร์เซอร์ไปที่มุมบนซ้าย" \x1b[2Jหมายถึง "ล้างหน้าจอทั้งหมด" 2)ใน windows, ANSI ไม่ได้รับการยอมรับดังนั้นอาจไม่มีสายมายากล
Alba Mendez

1
เย็น! นอกจากนี้สำหรับการพิมพ์ python3 ('\ x1b [H \ x1b [2J', end = ''); สามารถช่วยหลีกเลี่ยงบรรทัดใหม่ที่อยู่ข้างหน้า
DenMark

สายเวททำงานบนคอนโซล Microsoft Windows 10 ด้วย Python 3.6 สำหรับฉัน ฉันใช้คำสั่งสตริงที่ไม่ได้ใช้กับ open
DevPlayer

2

นี่คือวิธีการที่ดีสองวิธี:

1

import os

# Clear Windows command prompt.
if (os.name in ('ce', 'nt', 'dos')):
    os.system('cls')

# Clear the Linux terminal.
elif ('posix' in os.name):
    os.system('clear')

2

import os

def clear():
    if os.name == 'posix':
        os.system('clear')

    elif os.name in ('ce', 'nt', 'dos'):
        os.system('cls')


clear()

หาก os.name ไม่มีสิ่งเหล่านี้ทำไมไม่ถอยกลับไปที่การพิมพ์บรรทัดว่างเปล่า
Alba Mendez

ถ้าเป็น Jython ฉันอยากให้คุณรู้ว่า os.name = 'java'
iChux

ดูดีแล้วนี่หมายความว่าโปรแกรมสามารถข้ามแพลตฟอร์มได้หรือไม่?
ลุค


2

วิธีที่ง่ายที่สุดคือการใช้โมดูลระบบปฏิบัติการ

>>> import os
>>> clear = lambda: os.system('clear')
>>> clear()

1

นี้ควรจะข้ามแพลตฟอร์มและยังใช้ที่ต้องการsubprocess.callแทนการos.systemตามเอกสาร ควรทำงานใน Python> = 2.4os.system

import subprocess
import os

if os.name == 'nt':
    def clearscreen():
        subprocess.call("cls", shell=True)
        return
else:
    def clearscreen():
        subprocess.call("clear", shell=True)
        return

1

วิธีการเกี่ยวกับเรื่องนี้เพื่อความชัดเจน

- os.system('cls')

นั่นเป็นเรื่องสั้นที่สุดเท่าที่จะทำได้!


ใช่ แต่ไม่ใช่หลายแพลตฟอร์มและคุณต้องพิมพ์ซ้ำทุกครั้งที่คุณต้องการล้างหน้าจอ
Alba Mendez

1

ฉันยังใหม่กับงูหลาม (ใหม่จริง ๆ ) และในหนังสือเล่มหนึ่งที่ฉันอ่านเพื่อทำความคุ้นเคยกับภาษาที่พวกเขาสอนวิธีการสร้างฟังก์ชั่นเล็ก ๆ น้อย ๆ นี้เพื่อล้างคอนโซลของ Backlog ที่มองเห็นได้และคำสั่งและพิมพ์ในอดีต:

เปิดเชลล์ / สร้างเอกสารใหม่ / สร้างฟังก์ชั่นดังต่อไปนี้:

def clear():
    print('\n' * 50)

บันทึกไว้ในโฟลเดอร์ lib ในไดเรกทอรี python ของคุณ (ของฉันคือ C: \ Python33 \ Lib) ครั้งต่อไปที่คุณ nedd ล้างคอนโซลของคุณเพียงแค่เรียกใช้ฟังก์ชันด้วย:

clear()

แค่นั้นแหละ. PS: คุณสามารถตั้งชื่อให้คุณทำงานได้ตามที่คุณต้องการ ผู้คนที่ Iv 'เคยใช้ "wiper" "เช็ด" และรูปแบบ


1

ฉันใช้ Spyder (Python 2.7) และเพื่อทำความสะอาดคอนโซลล่ามที่ฉันใช้

%ชัดเจน

ที่บังคับให้บรรทัดคำสั่งไปที่ด้านบนและฉันจะไม่เห็นคำสั่งเก่าก่อนหน้านี้

หรือฉันคลิก "ตัวเลือก" ในสภาพแวดล้อมคอนโซลและเลือก "รีสตาร์ทเคอร์เนล" ที่จะลบทุกอย่าง


1

ฉันอาจจะมาสาย แต่ส่วนนี้เป็นวิธีที่ง่ายมากที่จะทำ

ประเภท:

def cls():
    os.system("cls")

ดังนั้นสิ่งที่คุณต้องการล้างหน้าจอเพียงแค่พิมพ์รหัสของคุณ

cls()

ทางที่ดีที่สุด! (เครดิต: https://www.youtube.com/watch?annotation_id=annotation_3770292585&feature=iv&src_vid=bguKhMnvmb8&v=LtGEp9c6Z-U )



1

หากคุณไม่จำเป็นต้องทำมันด้วยรหัสเพียงแค่กด CTRL + L


ใช่มันใช้งานได้ แต่ถ้าคุณต้องการสร้างคำสั่งในไฟล์ไพ ธ อนของคุณที่เคลียร์คอนโซลคุณจะไม่เพียงแค่สร้างสิ่งที่ผู้ใช้พิมพ์แล้วบอกให้พวกเขาล้างมันเอง คุณจะล้างคอนโซลผ่านรหัส
madladzen

1

Arch Linux (ทดสอบxfce4-terminalกับ Python 3):

# Clear or wipe console (terminal):
# Use: clear() or wipe()

import os

def clear():
    os.system('clear')

def wipe():
    os.system("clear && printf '\e[3J'")

... เพิ่มไปยัง ~/.pythonrc

  • clear() ล้างหน้าจอ
  • wipe() เช็ดเทอร์มินัลบัฟเฟอร์ทั้งหมด

0

แก้ไข: ฉันเพิ่งอ่าน "windows" นี้มีไว้สำหรับผู้ใช้ linux ขอโทษ


ในทุบตี:

#!/bin/bash

while [ "0" == "0" ]; do
    clear
    $@
    while [ "$input" == "" ]; do
        read -p "Do you want to quit? (y/n): " -n 1 -e input
        if [ "$input" == "y" ]; then
            exit 1
        elif [ "$input" == "n" ]; then
            echo "Ok, keep working ;)"
        fi
    done
    input=""
done

บันทึกเป็น "whatyouwant.sh", chmod + x จากนั้นเรียกใช้:

./whatyouwant.sh python

หรืออย่างอื่นที่ไม่ใช่ไพ ธ อน สิ่งนี้จะถามคุณว่าคุณต้องการออกจริงหรือไม่หากไม่รันใหม่อีกครั้งหลาม (หรือคำสั่งที่คุณให้ไว้เป็นพารามิเตอร์)

สิ่งนี้จะล้างทั้งหมดหน้าจอและตัวแปร / วัตถุ / สิ่งที่คุณสร้าง / นำเข้าในไพ ธ อน

ใน python เพียงพิมพ์ exit () เมื่อคุณต้องการออก


0

ตกลงดังนั้นนี่เป็นคำตอบทางเทคนิคที่น้อยกว่ามาก แต่ฉันใช้ปลั๊กอิน Python สำหรับ Notepad ++ และปรากฎว่าคุณสามารถล้างคอนโซลด้วยตนเองได้โดยคลิกขวาที่มันแล้วคลิก "ล้าง" หวังว่านี่จะช่วยให้ใครบางคนที่นั่น!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.