【问题标题】:FileNotFoundError: [Errno 2] No such file or directory: 'keys_keys.txt'FileNotFoundError:[Errno 2] 没有这样的文件或目录:'keys_keys.txt'
【发布时间】:2019-12-28 17:11:47
【问题描述】:

在处理文件和加密库时,我在读取文件时遇到问题。详情如下,

得到以下异常:

Traceback (most recent call last):
  File "F:/PyCharm Python Works/OpenCity/main_directory/main_file.py", line 8, in <module>
    fe.encrypt_file(z2[0], z2[1])
  File "F:\PyCharm Python Works\OpenCity\cryptograph\file_encryptor.py", line 4, in encrypt_file
    keys = kr.read_keys()
  File "F:\PyCharm Python Works\OpenCity\cryptograph\key_reader.py", line 3, in read_keys
    f1 = open('keys.key', 'rb')
FileNotFoundError: [Errno 2] No such file or directory: 'keys.key'

密码器 file_decryptor.py:

def decrypt_file(x, y):

    from cryptograph import key_reader as kr
    from cryptography.fernet import Fernet
    keys = kr.read_keys()
    key = keys[0]
    input_file = x
    output_file = y

    with open(input_file, 'rb') as f:
        data = f.read()

    f1 = Fernet(key)
    encrypted = f1.decrypt(data)

    with open(output_file, 'wb') as f:
        f.write(encrypted)

file_encryptor.py:

def encrypt_file(x, y):
    from cryptograph import key_reader as kr
    from cryptography.fernet import Fernet
    keys = kr.read_keys()
    key = keys[0]
    input_file = x
    output_file = y

    with open(input_file, 'rb') as f:
        data = f.read()

    f2 = Fernet(key)
    encrypted = f2.encrypt(data)

    with open(output_file, 'wb') as f:
        f.write(encrypted)

key_reader.py:

def read_keys():
    from typing import List
    f1 = open('keys.key', 'rb')
    f2: List[bytes] = []
    data: bytes
    for data in f1:
        f2.append(data)
    print(f2)
    return f2

main_file.py:

from cryptograph import file_encryptor as fe
from cryptograph import file_decryptor as fd
z1r = open('files.txt', 'r')
z2 = []
for data in z1r:
    data = data.rstrip('\n')
    z2.append(data)
fe.encrypt_file(z2[0], z2[1])
fd.decrypt_file(z2[1], z2[2])

我刚刚完成了高级类别。 密码仪是个问题。一切都很好,除了导致问题的 main_file。

【问题讨论】:

  • 您的文件 keys.key 是否存储在“F:\PyCharm Python Works\OpenCity\cryptograph\”?
  • 错误:没有这样的文件或目录:'keys.key'。确保您有可用的文件“keys.key”并使用绝对路径(完整路径)。
  • @SunPaz 它属于同一类别。但 main_file 属于不同的类别。
  • @naveentamanam 我会试着告诉你先生。

标签: python python-3.x list file


【解决方案1】:

错误的确切原因是

"File "F:\PyCharm Python Works\OpenCity\cryptograph\key_reader.py", line 3, in 
read_keys
f1 = open('keys.key', 'rb')"

归咎于没有keys.key文件。 因此,您应该确认“F:\PyCharm Python Works\OpenCity\cryptograph\”目录中存在“keys.key”文件。

【讨论】:

  • 如何添加它们,先生。先生,你能给我一个语法吗?
  • 但是先生,当我分发给每个人时,目录就出现了问题先生
  • 拥有os.chdir 帮助我在很长一段时间后解决了这个问题。
【解决方案2】:

确保keys.key 文件与key_reader.py 保存在同一位置。

或者使用绝对路径,例如:

f1 = open('F:/path/to/file/key.key', 'rb')

【讨论】:

  • 先生,它保存在与我的 key_reader.py 相同的位置。它在与 key_reader.py、file_encryptor.py 和 file_decryptor.py 一起使用时也有效,但它不适用于 main_file.py。
  • 我本来可以用os.chdir,但我很久以后才知道,所以,没关系。我已经发布了一个答案。
【解决方案3】:

使用os.chdir() 更改目录帮助我解决了这个问题。

参考代码:

import cryptograph.key_writer

key_writer.write_key('keys.key', 1)

cryptograph/key_writer.py

import os


def write_key(file, number_of_keys):
    # create key
    keys = []
    for i in range(number_of_keys):
        key.append(create_key())

    os.chdir('./cryptograph')
    # write keys to file
    with open(file, 'w') as f:
        for key in keys:
            f.write(key)
    return None # it is fine not to have this return stmt, but I like to have it.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 2021-08-24
    • 2021-03-07
    • 2015-06-09
    • 2021-04-01
    • 2021-10-15
    • 1970-01-01
    相关资源
    最近更新 更多