2017-02-08 8 views
0

大きなファイルに暗号テキストが含まれています。暗号はこのように接続されていますファイル内の接続された文字を分割する方法

QJFQFJDOVRVLHSVUJNHTZDGLDOVGSAYFKFPSAJSOEGXCDHCDDEWGTUUFOVDGQUJD 

私の質問はどのように私はループごとにできるのですか?このコードで

"TypeError: ord() expected a character, but string of length 6 found"

が、私はこのコードをしようとしているが、私は、このエラーメッセージを取得

num = (ord(symbol)-k) % 126 

TypeError: ord() expected string of length 1, but list found"

with open(file) as f: 
    translated = '' 
    for s in f: 
      symbol = s.split() 
      print(symbol) 
      num = (ord(symbol)-k) % 126 

      if num < 32: 
        num += 95 
      translated += chr(num) 
    print(translated) 

.split()機能を追加する前に、私は、このエラーメッセージが表示されました:

with open(file) as f: 
    translated = '' 
    for symbol in f: 
      print(symbol) 
      num = (ord(symbol)-k) % 126 

      if num < 32: 
        num += 95 
      translated += chr(num) 
    print(translated) 

マイciphertは何の空白

+0

's'はファイル内の行です。 。 。あなたはそれを反復したいでしょう。そして、Pythonでは、文字列を直接反復することができます(つまり 'for _ in s') – ernie

答えて

2

ありがとうございません含まれています(スペースや他の区切りがないよう)に分割するためにあなたのファイルには何もありません。あなたのファイルが途方もなく大きくない場合は、文字列としてその内容を読み、文字の集合としての文字列を処理:

data = open(file).read() 
for char in data: 
    #do something with your char, like ord(char) 

ファイルが大きい場合、それは.read(n)とピース単位読んで、あなたはまだ文字列を取得します一緒に働く

関連する問題