Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python脚本,没有输出?_Python_File Io_Hash_Output - Fatal编程技术网

Python脚本,没有输出?

Python脚本,没有输出?,python,file-io,hash,output,Python,File Io,Hash,Output,我编写了一个简单的python脚本来散列文件并输出结果。但是,当我运行脚本(pythonscriptname.py)时,我没有得到任何输出(期望它打印校验和)。我也没有从控制台得到任何错误 我做错了什么 #!/usr/bin/env python import hashlib import sys def sha256_checksum(filename, block_size=65536): sha256 = hashlib.sha256() filename = '/D

我编写了一个简单的python脚本来散列文件并输出结果。但是,当我运行脚本(pythonscriptname.py)时,我没有得到任何输出(期望它打印校验和)。我也没有从控制台得到任何错误

我做错了什么

#!/usr/bin/env python

import hashlib
import sys

def sha256_checksum(filename, block_size=65536):

    sha256 = hashlib.sha256()
    filename = '/Desktop/testfile.txt'

    with open(filename, 'rb') as f:
        for block in iter(lambda: f.read(block_size), b''):
            sha256.update(block)
    return sha256.hexdigest()

def main():
    for f in sys.argv[1:]:
        checksum = sha256_checksum(f)
        print(f + '\t' + checksum)

if __name__ == '__main__':
    main()
def main(): 对于sys.argv[1:]中的f:

脚本需要参数。如果在没有任何参数的情况下运行它,则不会看到任何输出。 主体假设您提供了用于散列的文件列表,但在散列函数中您硬编码了

filename='/Desktop/testfile.txt'

因此,如果要将用于哈希的文件作为脚本参数传递,请删除该行

filename='/Desktop/testfile.txt'

python scriptname.py '/Desktop/testfile.txt'

您还希望获得什么其他输出?到底什么不起作用?我希望文件的校验和/哈希按以下行打印:print(f+'\t'+checksum)哇,对不起,将“期望它打印校验和”读为“除了它打印校验和”。
sys.argv[1://code>的值是多少?这很有效,谢谢。也没有引用文件的完整路径。