在我改变了一些我不再记得的内容之后,这段代码完全停止了做任何事情
#Dash Shell
import os
import datetime
class LocalComputer:
pass
def InitInformation():
Home = LocalComputer()
#Acquires user information
if (os.name == "nt"):
Home.ComputerName = os.getenv("COMPUTERNAME")
Home.Username = os.getenv("USERNAME")
Home.Homedir = os.getenv("HOMEPATH")
else:
Home.ComputerName = os.getenv()
Home.Username = os.getenv("USER")
Home.Homedir = os.getenv("HOME")
return Home
def MainShellLoop():
print ("--- Dash Shell ---")
Home = InitInformation()
userinput = None
currentdir = Home.Homedir
while (userinput != "exit"):
rightnow = datetime.datetime.now()
try:
userinput = input(str(Home.ComputerName) + "\\" + str(Home.Username) + ":" + str(rightnow.month) + "/" + str(rightnow.day) + "/" + str(rightnow.year) + "@" + str(currentdir))
except:
print("Invalid Command specified, please try again")
MainShellLoop()
编辑:大声抱歉,伙计们忘了说它应该运行输入
答案 0 :(得分:2)
您应该更好地描述您的问题。它是否打印输入提示?它输出什么吗?它会退出还是只是坐在那里?我在阅读这些可能有用的代码时发现了一些问题。您应该使用raw_input(),而不是input()。此外,除非它=='退出',否则您实际上不会对userinput执行任何操作。哪个不会,因为你只是使用input()而不是raw_input(),所以这个人必须输入'exit'(包括引号),否则循环将永远不会退出。 (假设它不是Python 3代码)
答案 1 :(得分:2)
它什么都不做,因为没有代码可以让它做任何事情。尝试插入像
这样的行print("You entered:", userinput)
在你的循环中的适当位置。
答案 2 :(得分:1)
os.getenv()
必须至少有一个参数。试试os.getenv("HOST")
或其他什么。