1

ファイルから行ごとに読み取る必要があります。また、エンコーディングが正しく処理されていることを確認する必要もあります。

次のコードを書きました。

#!/bin/bash

import codecs

filename = "something.x10"

f = open(filename, 'r')
fEncoded = codecs.getreader("ISO-8859-15")(f)

totalLength = 0
for line in fEncoded:
  totalLength+=len(line)

print("Total Length is "+totalLength)

このコードは、すべてのファイルで機能するわけではありません。

Traceback (most recent call last):
  File "test.py", line 11, in <module>
    for line in fEncoded:
  File "/usr/lib/python3.2/codecs.py", line 623, in __next__
    line = self.readline()
  File "/usr/lib/python3.2/codecs.py", line 536, in readline
    data = self.read(readsize, firstline=True)
  File "/usr/lib/python3.2/codecs.py", line 480, in read
    data = self.bytebuffer + newdata
TypeError: can't concat bytes to str

私はpython 3.3を使用しており、スクリプトはこのpythonバージョンで動作する必要があります。

私は何を間違っていますか、どのファイルが機能し、どのファイルが機能しないかを見つけることができませんでした。一部のプレーンASCIIファイルでさえ失敗します。

4

1 に答える 1