【发布时间】:2010-10-15 18:29:07
【问题描述】:
我正在尝试从一个文件中读取并写入另一个文件。当我试图将原始文件中的换行符保留到新文件时,就会出现问题。
def caesar_encrypt(orig , shift):
enctextCC = open("CCencoded.txt" , 'w')
for i in range(len(orig)):
for j in range(len(orig[i])):
curr = orig[i][j]
if ord(curr) == 10:
enctextCC.write("\n") //doesn't work :(
elif ord(curr) < 97:
enctextCC.write(curr)
elif ord(curr)+shift > 122:
enctextCC.write(chr(ord(curr)+shift-26))
elif ord(curr)+shift >= 97 & ord(curr)+ shift <= 122 :
enctextCC.write(chr(ord(curr)+shift))
enctextCC.close()
关于哪里出了问题有什么建议吗?
谢谢
编辑: 解决方案是在外部 for 循环的末尾添加换行符。由于我正在阅读列表列表,因此内部循环基本上是一行。所以它应该是这样的:
def caesar_encrypt(orig , shift):
enctextCC = open("CCencoded.txt" , 'w')
for i in range(len(orig)):
for j in range(len(orig[i])):
curr = orig[i][j]
if ord(curr) < 97:
enctextCC.write(curr)
elif ord(curr)+shift > 122:
enctextCC.write(chr(ord(curr)+shift-26))
elif ord(curr)+shift >= 97 & ord(curr)+ shift <= 122 :
enctextCC.write(chr(ord(curr)+shift))
enctextCC.write("\n")
enctextCC.close()
【问题讨论】:
-
什么不起作用?怎么会,你到底想做什么?
-
看起来您只是在新文件中写入换行符...
-
我还有几个可以工作的案例,只是当我试图保留它打破的换行符时。
-
你应该看看
str.maketrans和str.translate。