python学習ノート(九)-IOプログラミング
2956 ワード
一.ファイルの読み書き:
1.ファイルを読む:
2.書類を書く:
二.操作ファイルとディレクトリ:
pythonのosモジュールはオペレーティングシステムのディレクトリとファイル操作をカプセル化し、これらの関数はosモジュールにあるもの、osにあるものに注意しなければならない.pathモジュールで
三.シーケンス化
四.JSON:
JSONとpythonオブジェクト間の変換:
カスタムJSONシーケンス化と逆シーケンス化:
1.ファイルを読む:
try:
f = open('D:\\1.txt', 'r') #
f = open('D:\\1.jpg', 'rb') #
f.read()
finally:
if f:
f.close()
with open('D:\\1.txt', 'r') as f: # with close
for line in f.readlines(): # readlines
print(line.strip()) # '
'
import codecs
with codecs.open('D:\\1.txt', 'r', 'gbk') as f: # codecs
for line in f.readlines():
print(line.strip())
2.書類を書く:
f = open('d:\\1.txt', 'w') # wb
f.write('Hello, world!')
f.close()
二.操作ファイルとディレクトリ:
pythonのosモジュールはオペレーティングシステムのディレクトリとファイル操作をカプセル化し、これらの関数はosモジュールにあるもの、osにあるものに注意しなければならない.pathモジュールで
import os
print os.environ #
print os.getenv('PATH') # path
print os.path.abspath('.') #
os.mkdir('d:\\test') #
os.rmdir('d:\\test') #
print os.path.join('d:\\test', 'tt') # d:\test\tt
print os.path.split('d:\\test\\1.txt') # ('d:\\test', '1.txt')
print os.path.splitext('d:\\test\\1.txt') # ('d:\\test\\1', '.txt')
三.シーケンス化
try:
import cPickle as pickle # cpickle(c )
except ImportError:
import pickle # pickle(python )
d = dict(name='Bob', age=20, score=88)
f = open('d:\\dump.txt', 'wb')
pickle.dump(d, f) #
f.close()
f = open('d:\\dump.txt', 'rb')
d = pickle.load(f) #
f.close()
print d
四.JSON:
JSONとpythonオブジェクト間の変換:
import json
d = dict(name='Bob', age=20, score=88)
# python JSON
print json.dumps(d) # {"age": 20, "score": 88, "name": "Bob"}
# JSON python
json_str = '{"age": 20, "score": 88, "name": "Bob"}'
print json.loads(json_str) # {u'age': 20, u'score': 88, u'name': u'Bob'}
カスタムJSONシーケンス化と逆シーケンス化:
import json
class Student(object):
def __init__(self, name, age, score):
self.name = name
self.age = age
self.score = score
# JSON
def student2dict(std):
return {
'name': std.name,
'age': std.age,
'score': std.score
}
s = Student('Bob', 20, 88)
print(json.dumps(s, default=student2dict))
# JSON
def dict2student(d):
return Student(d['name'], d['age'], d['score'])
json_str = '{"age": 20, "score": 88, "name": "Bob"}'
print(json.loads(json_str, object_hook=dict2student))