用gnupg解密gpg文件

0 投票
1 回答
1890 浏览
提问于 2025-04-16 01:52

我正在尝试解密一些我下载的gpg文件。把文件下载到一个文件夹里没问题,但我在解密这些文件时遇到了麻烦。现在我正在做的事情是:

def extractGPGs(gpglist,path,gpgPath="\"C:\\Program Files\\GNU\\GnuPG\\gpg.exe\""):
os.chdir(path)

if not os.path.isdir("GPGFiles"):
    os.mkdir("GPGFiles")
if not os.path.isdir("OtherFiles"):
    os.mkdir("OtherFiles")

if gpglist == None:
    print "No GPG files found"
    return

try:
    gpg = gnupg.GPG(gpgbinary=gpgPath)
except:
    raise "Path to gpg.exe is bad"

print "Extracting GPG Files..."

for filename in gpglist:       

    print "Extracting %s..." % filename
    stream = open(filename,"rb")
    decrypted_data = gpg.decrypt_file(stream,output=".\\OtherFiles")
    stream.close()

print "Finished Extracting GPG Files"

这是我遇到的错误:

Traceback (most recent call last):
File "C:\Documents and Settings\nlesniewski\Desktop\downloadData.py", line 281, in <module>
    main(vendor,category)
  File "C:\Documents and Settings\nlesniewski\Desktop\downloadData.py", line 273, in main
    extractAndParse.main(info['LocalFolder'])
  File "C:\Documents and Settings\nlesniewski\Desktop\extractAndParse.py", line 147, in main
    extractGPGs(getGPGs(getAllArchives(path)),path)
  File "C:\Documents and Settings\nlesniewski\Desktop\extractAndParse.py", line 133, in extractGPGs
    decrypted_data = gpg.decrypt_file(stream,output=".\\OtherFiles")
  File "C:\Python25\Lib\site-packages\gnupg.py", line 574, in decrypt_file
    os.remove(output) # to avoid overwrite confirmation message
WindowsError: [Error 5] Access is denied: '.\\OtherFiles'

我为什么会出现这个错误?更重要的是,我该怎么解密这些gpg文件呢?

1 个回答

2

也许你需要的输出是一个文件名,而不是一个目录。

撰写回答