欢迎光临散文网 会员登陆 & 注册

NewyearDOS 0.029更新了!

2023-08-11 09:55 作者:新的一year  | 我要投稿

添加了一个新的功能;语言切换,可以切换中/英,源码:

import os

print("欢迎,版本号:0.029")


class NewyearDOS:

    def __init__(self):

        self.current_dir = os.getcwd()

        self.language = "english"  # 默认语言为英语


    def run(self):

        while True:

            command = input(f"{self.current_dir}> ")

            self.execute_command(command)


    def execute_command(self, command):

        command_parts = command.split()


        if command_parts:

            cmd = command_parts[0].lower()

            args = command_parts[1:]


            if cmd == "cd":

                self.change_directory(args)

            elif cmd == "dir":

                self.list_directory()

            elif cmd == "mkdir":

                self.create_directory(args)

            elif cmd == "rmdir":

                self.remove_directory(args)

            elif cmd == "exit":

                exit()

            elif cmd == "help":

                self.show_help()

            elif cmd == "lang":

                self.set_language(args)

            else:

                print(self.get_text("invalid_command"))


    def change_directory(self, args):

        if args:

            new_dir = os.path.join(self.current_dir, args[0])

            if os.path.isdir(new_dir):

                self.current_dir = new_dir

            else:

                print(self.get_text("directory_not_found"))

        else:

            print(self.get_text("missing_directory_name"))


    def list_directory(self):

        files = os.listdir(self.current_dir)

        for file in files:

            file_path = os.path.join(self.current_dir, file)

            if os.path.isdir(file_path):

                print(f"<DIR>\t{file}")

            else:

                print(f"\t{file}")


    def create_directory(self, args):

        if args:

            new_dir = os.path.join(self.current_dir, args[0])

            try:

                os.mkdir(new_dir)

                print(self.get_text("directory_created").format(args[0]))

            except:

                print(self.get_text("failed_to_create_directory"))

        else:

            print(self.get_text("missing_directory_name"))


    def remove_directory(self, args):

        if args:

            dir_path = os.path.join(self.current_dir, args[0])

            if os.path.isdir(dir_path):

                try:

                    os.rmdir(dir_path)

                    print(self.get_text("directory_removed").format(args[0]))

                except:

                    print(self.get_text("failed_to_remove_directory"))

            else:

                print(self.get_text("directory_not_found"))

        else:

            print(self.get_text("missing_directory_name"))


    def show_help(self):

        print(self.get_text("available_commands"))

        print("cd <directory> - " + self.get_text("change_directory"))

        print("dir - " + self.get_text("list_directory"))

        print("mkdir <directory> - " + self.get_text("create_directory"))

        print("rmdir <directory> - " + self.get_text("remove_directory"))

        print("exit - " + self.get_text("exit_program"))

        print("help - " + self.get_text("show_help"))

        print("lang <language> - " + self.get_text("set_language"))


    def set_language(self, args):

        if args:

            language = args[0].lower()

            if language == "english":

                self.language = "english"

                print("Language set to English")

            elif language == "chinese":

                self.language = "chinese"

                print("语言设置为中文")

            else:

                print("Unsupported language")

        else:

            print("Missing language option")


    def get_text(self, key):

        if self.language == "chinese":

            if key == "invalid_command":

                return "无效命令"

            elif key == "directory_not_found":

                return "目录不存在"

            elif key == "missing_directory_name":

                return "缺少目录名称"

            elif key == "directory_created":

                return "目录 '{}' 创建成功"

            elif key == "failed_to_create_directory":

                return "无法创建目录"

            elif key == "directory_removed":

                return "目录 '{}' 移除成功"

            elif key == "failed_to_remove_directory":

                return "无法移除目录"

            elif key == "available_commands":

                return "可用命令:"

            elif key == "change_directory":

                return "切换当前目录"

            elif key == "list_directory":

                return "列出文件和目录"

            elif key == "create_directory":

                return "创建新目录"

            elif key == "remove_directory":

                return "移除目录"

            elif key == "exit_program":

                return "退出程序"

            elif key == "show_help":

                return "显示可用命令和描述"

            elif key == "set_language":

                return "设置语言"

            else:

                return key  # 如果找不到相应的键,则返回键本身

        else:

            if key == "invalid_command":

                return "Invalid command"

            elif key == "directory_not_found":

                return "Directory not found"

            elif key == "missing_directory_name":

                return "Missing directory name"

            elif key == "directory_created":

                return "Directory '{}' created successfully"

            elif key == "failed_to_create_directory":

                return "Failed to create directory"

            elif key == "directory_removed":

                return "Directory '{}' removed successfully"

            elif key == "failed_to_remove_directory":

                return "Failed to remove directory"

            elif key == "available_commands":

                return "Available commands:"

            elif key == "change_directory":

                return "Change current directory"

            elif key == "list_directory":

                return "List files and directories"

            elif key == "create_directory":

                return "Create new directory"

            elif key == "remove_directory":

                return "Remove directory"

            elif key == "exit_program":

                return "Exit program"

            elif key == "show_help":

                return "Display available commands and descriptions"

            elif key == "set_language":

                return "Set language"

            else:

                return key  # If the corresponding key is not found, return the key itself



if __name__ == "__main__":

    dos = NewyearDOS()

    dos.run()

看完点个赞!

NewyearDOS 0.029更新了!的评论 (共 条)

分享到微博请遵守国家法律