使用shi加密文件

2024-06-25 07:07:04 发布

您现在位置:Python中文网/ 问答频道 /正文

不知道我做错了什么?程序要求输入文件名并读取文件,但要打印编码的消息时,结果是空白的。我遗漏了什么,好像我把短语改成了普通的原始输入(“enter message”),代码可以工作,但这不是从txt文件读取

letters = "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
cshift = int(input("Enter a number: "))
phrase = open(raw_input("file name: "), 'r')
newPhrase = ""
for l in phrase:
   if l in letters:
        pos = letters.index(l) + cshift
        if pos > 25:
            pos = pos-26
        newPhrase += letters[pos]

else:
    newPhrase += " "
print(newPhrase)

Tags: 文件inpos程序消息编码inputif
2条回答

这里的问题是这条线上的for循环:

for l in phrase:

将返回完整的行,而不是单个字符

因此,您还必须循环遍历这些行中的单个字符,或者读取文件二进制文件,或者使用file对象上的函数,一次读取一个字符

你可以这么做:

for line in phrase:
    for l in line:
        ... rest of your code here

open函数不返回字符串,而是返回可从中读取字符串的已打开文件的句柄。您应该在Python中搜索有关如何将文件读入字符串的信息,然后在REPL中尝试,以确保它返回的是字符串而不是其他内容

相关问题 更多 >