python学習ノート(九)-IOプログラミング

2956 ワード

一.ファイルの読み書き:
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))