Python Fileread

python-fileread.png

UnicodeEncodeError: 'ascii' codec can't encode characters in position 6-11: ordinal not in range(128)

3つの対処方法

.encode("utf_8")をつける

print val.encode("utf_8")

先頭にuをつける

u"日本語だよ"

ファイルの先頭にUTF-8を使う旨のコメントをつける

#!/usr/bin/env python
# -*- coding: utf-8 -*-

しつこいやつもこの3つの手を組み合わせて使えば解消できます

テキストファイルを1行ずつ読む場合

#!/usr/bin/env python
f = open('text.txt', 'r')
for line in f:
    print line,
f.close()

テキストファイルを一気に読む

allLines = open('foo.html').read()

テキストファイルを一気に文字列に落とし込んだ上で1行ずつループで回す

allLines = open('foo.html').read()
lines=allLines.splie('\n')
for line in lines:
     print line#1行ずつ表示

バイナリファイルはnumpyによるarrayがおすすめ

arrayを使うにはnumpyが必要。

import numpy;
a=numpy.zeros((360,200));#360×200 で0で埋めつくされた配列の宣言
fp=open("data.bin","wb");
a.tofile(fp);#ファイルに書き込む
fp.close();

初期化

import numpy
a=numpy.empty((360,200),dtype=numpy.float32);#360×200 でシングルfloat型

dtype データタイプ

Data type Description
bool Boolean (True or False) stored as a byte
int Platform integer (normally either int32 or int64)
int8 Byte (-128 to 127)
int16 Integer (-32768 to 32767)
int32 Integer (-2147483648 to 2147483647)
int64 Integer (9223372036854775808 to 9223372036854775807)
uint8 Unsigned integer (0 to 255)
uint16 Unsigned integer (0 to 65535)
uint32 Unsigned integer (0 to 4294967295)
uint64 Unsigned integer (0 to 18446744073709551615)
float Shorthand for float64.
float16 Half precision float: sign bit, 5 bits exponent, 10 bits mantissa
float32 Single precision float: sign bit, 8 bits exponent, 23 bits mantissa
float64 Double precision float: sign bit, 11 bits exponent, 52 bits mantissa
complex Shorthand for complex128.
complex64 Complex number, represented by two 32-bit floats (real and imaginary components)
complex128 Complex number, represented by two 64-bit floats (real and imaginary components)

fileread

サポートサイト Wikidot.com fileread