我的示例文本文件是:'abcd abcd abcd'
该程序有一个字典,每个字母都有专用的符号.目标是创建一个加密文件消息的新文件.
节目"有效".我的意思是它只转换abc.由于字典中没有d,因此它会引发错误.我删除了d并再次尝试,但这引发了另一个错误:KeyError:''
如何让我的程序检测空格,即使没有符号,也要写信?
def main():
ecrypt = {'a':'%', 'b':'&', 'c':'/'}
input_file = open('efile.txt', 'r')
output_file = open('newefile.txt', 'w')
line = input_file.readline()
for letter in line:
if letter in line:
output_file.write(ecrypt[letter])
main()
Run Code Online (Sandbox Code Playgroud)
您可以使用try-exceptfor handle,KeyError但作为一种更加pythonic的方式,您可以使用str.translate()实际上用于此目的的函数:
>>> from string import maketrans
>>> i='abc'
>>> o='%&/'
>>> trantab = maketrans(i, o)
>>> print 'abcd abcd abcd'.translate(trantab)
%&/d %&/d %&/d
Run Code Online (Sandbox Code Playgroud)
并翻译文件并写入另一个文件:
from string import maketrans
i='abc'
o='%&/'
trantab = maketrans(i, o)
with open('efile.txt', 'r') as infile,open('newefile.txt', 'w') as out :
out.write(infile.read().translate(trantab))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |