前面的一些碎碎念两天的耽搁,思考了下,虽然需要全面基础的学习,但是重点还是应该放在实战上。所以后续要速速的推倒这个教程了,用一些数据来实行一些分析:)认真学习的分割线打打打打鸡血!!!喝了一点点梅子酒,让我的创造力更加丰丰丰丰富!IO编程文件读写读读读当我想读文件的时候,我可以做下面的动作。偷偷的先open()个文件,记得传入文件名和标志符号然后再小小的read()一下最后记得close()f = open(’/Users/michael/test.txt’, ‘r’)f.read()f.close()当文件不存在的时候是会报错的喔,所以我们可以用try…finally来实现准确的关闭文件。try: f = open(’/path/to/file’, ‘r’) print(f.read())finally: if f: f.close()更简洁的版本是with open(’/path/to/file’, ‘r’) as f: print(f.read())如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便。当读入的文件为二进制文件或图片等其他,用rb模式打开文件即可。当读入的文件不是UTF-8编码的时候,要传入encoding参数。写写写当我想写文件的时候,我在open()的时候把标志符改为wf = open(’/Users/michael/test.txt’, ‘w’)f.write(‘hello world’)f.close()可以传入wb来写二进制文件。写特定编码的文件的时候,传入encoding参数。为了不然后面写入的文件覆盖前面的,用a(append)模式写入即可,会追加到文件末尾。StringIO和BytesIOStringIOStringIO顾名思义就是在内存中读写str。要把str写入StringIO,首先要先创建一个StringIO,然后写入~用getvalue来获取写入后的str。如果想读取StringIO,也可以用str初始化一个StringIO,用readline()读取。BytesIO这位朋友是用来操作二进制文件的,在内存中读写bytes。>>> from io import BytesIO>>> f = BytesIO()>>> f.write(‘中文’.encode(‘utf-8’))6>>> print(f.getvalue())b’\xe4\xb8\xad\xe6\x96\x87’然后同StringIO一样,也可以用一个bytes初始化BytesIO,然后像文件一样读取。—–写于2019-01-09