做为一个业余编程爱好者,一直想好好学编程,但一直没有大块的时间.今天突然觉得这不是我不去学的一个借口,于是想到了这个每日10行代码的计划,也就是每天至少写10行代码,通过这个来督促自己学好python.下面是第一天的内容: file相关.
# python3.6
f = open('test_file_1.png','rb')
s = f.read(1)
print(s)
s = f.read(1)
print(s)
s = f.read(1)
print(s)
s = f.read(1)
print(s)
s = f.read(1)
print(s)
s = f.read(1)
print(s)
s = f.read(1)
print(s)
程序运行结果 :
b'\x89'
b'P'
b'N'
b'G'
b'\r'
b'\n'
b'\x1a'
学习到的几点知识:
- open时加模式参数b,是以二进制打开文件。
- 二进制打开文件并不是能直接看到01这种数据流,而是输出被转成16进制的数据。
- bytes类型的数据输出时,默认会按16进制输出(如第一行),但如果能遇到ascii码相关的字符,会直接出对应的ascii字符,比如上面第二行输出的N
- f.read()函数返回的数据是bytes类型的。
- read()函数每运行一次,文件指针就会移动一位,所以每次读取内容是不一样的.
- read() 中的参数size是字节数(byte),而不是比特数(bit), 1byte=8bit, 也就是读取1的话,是读8个0,1二进制流.
ps: 第一天开写,代码量有点少,下次补上. 因为最近打算写一个文件搜索相关的小程序,所以主要关注这方面的内容.