我不确定如何从 Python 3 中的 sha256 校验和中取出文件名
Im not sure how to take filename out of sha256 checksum in Python 3
我仍然是一个 Python 菜鸟,但我想与其手动检查校验和,不如编写一个快速程序,这样无论何时我必须这样做(也作为练习)都会花费更少的时间,所以我写了这个(请原谅我的代码中多余的无用行和错误的命名,我试图查明我做错了什么。)
import subprocess
FileLocation = input("Enter File Location: ")
Garbage1 = str(input("Enter First Checksum: "))
Garbage2 = str(subprocess.call(['sha256sum', FileLocation]))
Garbage3 = Garbage2.split(None, 1)
if Garbage1 == Garbage3[0]:
print("all good")
else:
print("Still Not Working!!!")
当我 运行 这段代码时,由于 Linux 命令,它继续在第二个校验和的末尾留下文件路径,但我尝试使用 .split( ) 但是当我 运行 代码时,它仍然存在,我还尝试将文件路径添加到第一个校验和的末尾作为测试,但这也不会将文件路径添加到它的末尾.
我确实知道校验和匹配
任何想法有什么问题,我们将不胜感激。
从文档中,subprocess.call
执行:运行 带有参数的命令。等待命令完成或超时,然后 return returncode 属性。 您可以通过输入 [=12= 在 python shell 中验证这一点] 或查看 https://docs.python.org 并搜索 subprocess
模块。
您的代码将整数 return 代码转换为字符串,而不是校验和。 subprocess 中还有其他调用捕获进程 stdout,这是 sha256sum
发送其校验和的地方。 Stdout 是一个 bytes
对象,需要解码为字符串。
import subprocess
FileLocation = input("Enter File Location: ")
Garbage1 = str(input("Enter First Checksum: "))
Garbage2 = subprocess.check_output(['sha256sum', FileLocation]).decode()
Garbage3 = Garbage2.split(None, 1)
if Garbage1 == Garbage3[0]:
print("all good")
else:
print("Still Not Working!!!")
我仍然是一个 Python 菜鸟,但我想与其手动检查校验和,不如编写一个快速程序,这样无论何时我必须这样做(也作为练习)都会花费更少的时间,所以我写了这个(请原谅我的代码中多余的无用行和错误的命名,我试图查明我做错了什么。)
import subprocess
FileLocation = input("Enter File Location: ")
Garbage1 = str(input("Enter First Checksum: "))
Garbage2 = str(subprocess.call(['sha256sum', FileLocation]))
Garbage3 = Garbage2.split(None, 1)
if Garbage1 == Garbage3[0]:
print("all good")
else:
print("Still Not Working!!!")
当我 运行 这段代码时,由于 Linux 命令,它继续在第二个校验和的末尾留下文件路径,但我尝试使用 .split( ) 但是当我 运行 代码时,它仍然存在,我还尝试将文件路径添加到第一个校验和的末尾作为测试,但这也不会将文件路径添加到它的末尾. 我确实知道校验和匹配
任何想法有什么问题,我们将不胜感激。
从文档中,subprocess.call
执行:运行 带有参数的命令。等待命令完成或超时,然后 return returncode 属性。 您可以通过输入 [=12= 在 python shell 中验证这一点] 或查看 https://docs.python.org 并搜索 subprocess
模块。
您的代码将整数 return 代码转换为字符串,而不是校验和。 subprocess 中还有其他调用捕获进程 stdout,这是 sha256sum
发送其校验和的地方。 Stdout 是一个 bytes
对象,需要解码为字符串。
import subprocess
FileLocation = input("Enter File Location: ")
Garbage1 = str(input("Enter First Checksum: "))
Garbage2 = subprocess.check_output(['sha256sum', FileLocation]).decode()
Garbage3 = Garbage2.split(None, 1)
if Garbage1 == Garbage3[0]:
print("all good")
else:
print("Still Not Working!!!")