欢迎访问宙启技术站
智能推送

使用Python编写隐藏文件的命令行工具

发布时间:2023-12-19 00:44:03

在Python中编写隐藏文件的命令行工具,可以使用os模块提供的函数来隐藏文件。下面是一个简单的示例代码:

import os


def hide_file(file_path):
    # 获取文件的绝对路径
    abs_file_path = os.path.abspath(file_path)
    
    # 判断文件是否存在
    if not os.path.exists(abs_file_path):
        print(f"文件 {abs_file_path} 不存在")
        return
    
    # 获取文件所在目录的绝对路径
    abs_dir_path = os.path.dirname(abs_file_path)
    
    # 将文件名前面加上点,实现隐藏
    hidden_file_path = os.path.join(abs_dir_path, f".{os.path.basename(abs_file_path)}")
    
    # 修改文件名
    os.rename(abs_file_path, hidden_file_path)
    
    print(f"文件 {abs_file_path} 成功隐藏为 {hidden_file_path}")


def unhide_file(file_path):
    # 获取文件的绝对路径
    abs_file_path = os.path.abspath(file_path)
    
    # 判断文件是否存在
    if not os.path.exists(abs_file_path):
        print(f"文件 {abs_file_path} 不存在")
        return
    
    # 获取文件所在目录的绝对路径
    abs_dir_path = os.path.dirname(abs_file_path)
    
    # 将文件名前面的点去掉,实现取消隐藏
    unhidden_file_path = os.path.join(abs_dir_path, os.path.basename(abs_file_path)[1:])
    
    # 修改文件名
    os.rename(abs_file_path, unhidden_file_path)
    
    print(f"文件 {abs_file_path} 成功恢复为 {unhidden_file_path}")


def main():
    user_input = input("请输入文件路径:")
    action = input("请选择操作(输入 1 隐藏文件,输入 2 恢复隐藏):")
    
    if action == "1":
        hide_file(user_input)
    elif action == "2":
        unhide_file(user_input)
    else:
        print("无效的操作")


if __name__ == "__main__":
    main()

以上代码定义了hide_file函数和unhide_file函数,分别用于隐藏文件和取消隐藏文件。main函数用于接收用户输入的文件路径和操作类型,并调用相应的函数来处理。

使用例子:

1. 隐藏文件:

请输入文件路径:/path/to/file.txt
请选择操作(输入 1 隐藏文件,输入 2 恢复隐藏):1
文件 /path/to/file.txt 成功隐藏为 /path/to/.file.txt

2. 恢复隐藏:

请输入文件路径:/path/to/.file.txt
请选择操作(输入 1 隐藏文件,输入 2 恢复隐藏):2
文件 /path/to/.file.txt 成功恢复为 /path/to/file.txt

注意:在Windows系统中,隐藏文件的文件名前面需要加上点开头(例如.file.txt),而在类Unix系统中,隐藏文件的文件名前面不需要加上点(例如file.txt)。