python 里的文件读写

听老师讲课还是需要持续的专注力的,边听边记并加上自己的理解,印象会更好,如果在后面能再运用下就更好了,在《软技能–代码之外的生存指南》一书中,提到学习关键的循环往复的学习新知识时,要求浅尝辄止后就要动手操作,边玩边学,然后达到能教别人你所学的那点知识,然后又开始继续尝试学习新的知识,浅尝辄止后继续操作,边玩边学,依此循环下去,最终达到全面掌握知识,直至融会贯通。
  下面记录下最近学习的知识,还停留在语法知识上,还需要多解决问题才行。

#文件直接读写
file1 = open("test.txt")
file2 = open("output.txt","w")
while True:
    line = file1.readline()
    s = len(line)
    file2.write(line[:s])
    if not line:
        break
file1.close()
file2.close()

#with open (   ) as *** 自带文件打开关闭
'''
with open('test.txt','r') as f:
    for line in f:
        print(line)
'''
#python 默认读取都是文本文件,要是想读取二进制文件,需要用rb模式打开。
#f = open('test.jpg','rb')

#文件和目录的操作
#python内置的os模块,直接调用操作系统提供的接口函数
import os
print(os.name)      #操作系统名称
'''  nt '''
#print(os.environ)   #系统环境,以字典的形式给出

#序列化和反序列化
'''
什么是序列化?
程序运行的过程中,所有变量都是在内存中操作的,当程序一旦执行完毕,结束退出后,
变量占有的内存就被操作系统回收了。因此我们需要将某些数据持久化存储到磁盘中,
下次运行的时候从磁盘中读取相关数据。
我们将变量从内存中变成可以存储或传输的过程称之为序列化,在Python中叫做pickling,
在其它语言中也称之为 serialization、marshaling、flattening等等,说的都是一个意
思。反之,则为反序列化,称之为unpickling,把变量内容从序列化的对象重新读取到内存中。
'''
import pickle

d = dict(name = 'sophia', age = 36, score = 100)
str = pickle.dumps(d) #调用pickle的dumps函数进行序列化处理
with open('dump.txt','wb') as f:     #写入文件中dumps
    pickle.dump(d, f)

with open('dump.txt','rb') as f:
    d = pickle.load(f)
    print(d)
    print('name is %s , score = %d' % (d['name'], d['score']))

#用JSON实现序列和反序列化¶
'''同时我们发现,pickle完的东西看不懂。只有python自己可以把它unpickle回来。
如果我们有一个文件现在存下来,并且日后要在其他地方用到的话,
我们可以用JSON来做序列化。'''
import json

dl = dict(name = 'andrew', age = 7, score = 99)
str = json.dumps(dl)
print(str)
d2 = json.loads(str)
print(d2)

你可能感兴趣的:(Python入门)