TSVファイルのすべての行をリストに読み込もうとしています。しかし、TSVリーダーは早く終了し、ファイル全体を読まない。 data
はファイル全体の長さのわずか1/6なので、私はこれを知っています。この場合、エラーはスローされません。CSVはWindows上のPythonですべての行を読み上げません
私は手作業で行末を検査すると(長さはdata
に相当しますが、これらの行には大量のUnicodeシンボルがあります)、UnicodeDecodeErrorを捕捉できると思っていましたが、エラーをスローするのではなく、
私は実際にループを起こしています。エラーは、Windows Server 2012でPython 2.7を使用している場合にのみ発生します。ファイルには、読み取り専用のファイルがあります。以下の両方のコードスニペットを使用して、Python 2.7のUnix実装に完全に100%。私はこれを両方のAnacondaの中で実行しています。
これは私が試したことです。どちらも機能しません:
data = []
with open('data.tsv','r') as infile:
csvreader = csv.reader((x.replace('\0', '') for x in infile),
delimiter='\t', quoting=csv.QUOTE_NONE)
data = list(csvreader)
は、私も行ずつ読んでみました...
with open('data.tsv','r') as infile:
for line in infile:
try:
d = line.split('\t')
q = d[0].decode('utf-8') #where the unicode symbols are located
data.append(d)
except UnicodeDecodeError:
continue
感謝を事前に! the documentationからの一般的な提案を1として
ブリリアント。 Unixが何度も私を怠け者にしてくれるので、私は 'r'対 'rb'を完全に忘れていました。フラグを切り替えると、ファイル全体が読み取られました。どうもありがとうございます! – Stevie