You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python程序遇PermissionError: [Errno 13]权限拒绝,求VSCode提权方法

解决Python加密文件时的PermissionError: [Errno 13] Permission denied问题

错误原因

出现这个错误通常是以下几种情况:

  • 目标文件正在被其他程序占用(比如用记事本、浏览器打开着)
  • 当前用户对目标文件或其所在文件夹没有读写权限
  • 程序试图修改系统保护的文件/目录(比如Windows的C:\Windows、Mac的/System目录)

解决方法

1. 关闭占用文件的程序

先检查目标文件是否被其他软件打开,关闭后重新运行程序。

2. 提升程序运行权限

Windows系统

  • 右键点击VSCode图标,选择「以管理员身份运行」,然后在VSCode中重新执行加密脚本
  • 或者在管理员权限的命令提示符(CMD)中运行脚本:
    python your_script.py
    

Mac/Linux系统

  • 在终端用管理员权限启动VSCode:
    sudo code
    
    之后在VSCode内运行脚本即可获得更高权限
  • 或者直接在终端用sudo执行Python脚本:
    sudo python3 your_script.py
    

3. 修改文件/文件夹权限

如果是目标文件所在目录权限不足,可以手动调整:

  • Windows:右键目标文件夹 → 属性 → 安全 → 编辑 → 给当前用户添加「读取」「写入」权限
  • Mac/Linux:在终端执行命令给文件添加读写权限:
    chmod u+rw /path/to/your/file
    
    给文件夹添加权限:
    chmod u+rwx /path/to/your/folder
    

你的加密脚本代码

import os
from cryptography.fernet import Fernet

# generate a random encryption key
def generate_key():
    return Fernet.generate_key()

# encrypt a file with custom byte size
def encrypt_file(key, filename, byte_size):
    with open(filename, 'rb') as f:
        data = f.read(byte_size)
    cipher = Fernet(key)
    encrypted_data = cipher.encrypt(data)
    with open(filename + '.encrypted', 'wb') as f:
        f.write(encrypted_data)
    return key

# save encryption key to a text file
def save_key_to_file(key):
    with open('encryption_key.txt', 'wb') as f:
        f.write(key)

# decrypt a file with a given key
def decrypt_file(key, filename):
    with open(filename, 'rb') as f:
        encrypted_data = f.read()
    cipher = Fernet(key)
    decrypted_data = cipher.decrypt(encrypted_data)
    with open('decrypted_' + filename, 'wb') as f:
        f.write(decrypted_data)

# main function
def main():
    choice = input("Enter 'E' to encrypt or 'D' to decrypt: ").upper()
    if choice == 'E':
        byte_size = int(input("Enter the byte size for encryption: "))
        filename = input("Enter the name of the file to encrypt: ")
        key = generate_key()
        encrypt_file(key, filename, byte_size)
        save_key_to_file(key)
        print("Encryption completed.")
        print("Encryption key has been saved to 'encryption_key.txt'.")
    elif choice == 'D':
        key = input("Enter the decryption key: ")
        filename = input("Enter the name of the encrypted file to decrypt: ")
        decrypt_file(key, filename)
        print("Decryption completed.")
    else:
        print("Invalid choice. Please enter 'E' or 'D'.")

if __name__ == "__main__":
    main()

内容的提问来源于stack exchange,提问作者Aiden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 16:57:36