私はRot-13の機能を実装しようとしていますが、私は新しい行を推測しています。ここで腐敗の新しい行の問題
は私のコードです:
import cgi, string
def convert():
lower = string.ascii_lowercase
upper = string.ascii_uppercase
punctuation = string.punctuation + ' '
with open('data.txt', 'r') as myfile:
s = myfile.read()
s = '%(pre_b)s%(s)s%(pre_e)s' % {'pre_b': '<pre>', 's': s, 'pre_e': '</pre>'}
s = ''.join(map(lambda x: shift(x, lower, upper, punctuation), s[5:-6]))
return cgi.escape(s, quote= True)
def shift(x, lower, upper, punctuation):
if x in punctuation:
return x
elif x.istitle():
return upper[(upper.index(x) + 13) % 26]
try:
return lower[(lower.index(x) + 13) % 26]
except:
print x
print convert()
1行の文章はOK処理されているが、入力は、新しい行が含まれている場合、Pythonは言うdata.txtをファイルのTypeError: expected string, NoneType found
内容は以下の通りです:
test
test test
助けてください。
エラーはそれ以上ですが、通常は行を絞り込んで絞り込むのに役立ちます。 –
また、何が失敗するのかの例を挙げてください。私はあなたのコードをエラーなく実行することができたので、別の入力であなたの質問に書いているものとは異なる例外を得ることもできました。 – idjaw
さらに調べると、あなたのコードは大混乱です。 –