key_file = open("key.txt", "r")
key = key_file.read().split(',')
text_file = open("plaintext.txt", "r")
text = text_file.read().split(' ')
key = map(int, key)
for i in range(len(key));
print text[i]
text_file.close()
key_file.close()
我是Python的新手,但我知道非常基本的C编程。我试图按照列表'key'中的整数顺序打印列表'text'(char列表),或者基本上使用key []整数来指定要打印的text []的索引。我可能会以完全错误的方式解决这个问题,但这是我到目前为止所做的。它以原始顺序打印文本列表,而不是按键[]的顺序。
key_file.txt是一个随机分类的整数,范围从1-26。 text_file.txt是26个字符,在这种情况下它是a到z。 输出应该基本上是根据key_file.txt重新排列的字母。
答案 0 :(得分:1)
由于您要打印不同的字符,请不要将text
分成单词。将它保留为单个字符串。
text = text_file.read()
然后遍历key
中的条目。由于key.txt
中的数字是1-26,因此您需要减去1以将其转换为0-25。
for i in key:
print text[i - 1]
答案 1 :(得分:1)
假设key是随机顺序的整数列表(1-26),text是26个字符的列表:
key_file = open("key.txt", "r")
key = key_file.read().split(',')
text_file = open("plaintext.txt", "r")
text = text_file.read().split(' ')
key = map(int, key)
for i in key:
print text[i - 1]
text_file.close()
key_file.close()
答案 2 :(得分:0)
这对你有用。我假设密钥是零索引的。您的里程可能会有所不同,具体取决于文件的实际结构。
with open("key.txt", "r") as key_list:
with open("plaintext.txt", "r") as text_list:
for key in key_list:
try:
print text_list[key]
except IndexError:
print "Invalid Key"