Python 如何在函数中传递文件名

Python 如何在函数中传递文件名,python,Python,我想传递一个要在rot 13中加密的.txt文件,如何传递该.txt文件,而不必硬编码要加密的单词?这就是我目前所拥有的 from string import maketrans rot13Translate =maketrans ('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm') def rot13(text):

我想传递一个要在rot 13中加密的.txt文件,如何传递该.txt文件,而不必硬编码要加密的单词?这就是我目前所拥有的

from string import maketrans

rot13Translate =maketrans 
('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 
'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm')

def rot13(text):
    return text.translate(rot13Translate)

def main():
    txt = ("Hello World")
    print rot13(txt)

if __name__ == "__main__":
    main()

假设您将您的内容放置在脚本所在的目录中,您可以执行以下操作:

def main():
    with open("your_file.txt", "r") as f:
        txt = f.read()
        print rot13(txt)

您的其余代码不需要修改。

假设您的文本在
加密的\u file.txt中:

def main(infilepath):
    with open(infilepath) as infile:
        for line in infile:
            ciphertext = line.strip()
            cleartext = rot13(ciphertext)
            print cleartext

main("encrypted_file.txt")

您只需按如下方式读取python中的文件内容:

txtFile = open(path_to_text_file, 'r').read()
然后将内容传递给翻译器函数。以下是完整的代码:

from string import maketrans

rot13Translate = maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm')

def rot13(text):
    return text.translate(rot13Translate)

def main(txtFile):
    print rot13(txtFile)

if __name__ == "__main__":
    txtFile = open(path_to_text_file, 'r').read()
    main(txtFile)

从文件中读取文本。这是基本的。尝试使用google。您可以打开文件
f
(最好通过
with
语句)。您可以通过
f.readlines()
将其内容分配给变量,并将其视为生成器或列表。我这样做了,但我没有正确理解。对不起……RIC13不是加密,它只是一种不提供安全性的编码