os.system('clear')返回“TERM环境变量未设置”而不是清除控制台

问题描述 投票:0回答:1

在Linux上,使用Sublime Text。

os.system('clear')
应该只是清除控制台窗口。
os.system('cls')
适用于 Windows。但它回来的方式跟我不一样。

代码:

import os

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

move_dict = {'rock': 1, 'paper': 2, 'scissors': 3}

user1 = input('Rock, paper or scissors: ').lower().strip()
user1_x = move_dict.get(user1)
clear()
user2 = input('Rock, paper or scissors: ').lower().strip()
user2_x = move_dict.get(user2)
clear()


diff = user1_x - user2_x


if diff in [-1, 2]:
    print(f'Player 1\'s {user1} loses. Player 2\'s {user2} wins.')
elif diff in [1, -2]:
    print(f'Player 1\'s {user1} wins. Player 2\'s {user2} loses.')
else:
    print(f'Both players chose {user1}, draw.')

返回:

Rock, paper or scissors: rock
TERM environment variable not set.
Rock, paper or scissors: scissors
TERM environment variable not set.
Player 1's rock wins. Player 2's scissors wins.

为什么当clear运行时返回“TERM环境变量未设置”而不是仅仅清除控制台?

尝试使用 def 而不是 lambda 定义函数,同样的错误。没有帮助。以前问过类似的问题,但没有给出适合初学者的答案。

python python-3.x linux operating-system sublimetext3
1个回答
0
投票

有趣,

os.system('clear')
对我来说完全没问题。我必须
os.system('unset TERM; clear')
才能重现您的错误。

当您访问 python 脚本时,您的 TERM env 很可能未设置、未继承

最简单的方法是

os.system('TERM=xterm-256color clear')
您可以将
xterm-256color
替换为您的终端支持的任何内容

© www.soinside.com 2019 - 2024. All rights reserved.