Python官方教程阅读总结-输入输出

1. 格式化输出

1.1 f-string

    在一个字符串的前面加上前缀 f 或 F,然后字符串里面就可以通过 { } 引用python 表达式,例如:

        name = 'Bill'

        age = 25

        f"My name is {name}, {age} years old. "

        { } 中除了变量化,还可以加入一引起表达式用来更精细得控制字符串格式,如:

        pi = 3.1415926

        print(f"the value of pi is {pi:.3f}") # 冒号后面加入对变量pi的一些限制,本例中小数点后保留三位小数

        { }中,如果冒号后面跟的是一下整数,限制该处字段的最小字符宽度,达不到设定的字符数就会用空格补齐,这样有利于输出的格式对齐,如下, 每个输出内容的升度虽不一样,但是会对齐输出:

1.2 str.format() 来格式化字符串

    像第一种方法一样,字符串中也用 { } 来占位,然后用str.format() 方法传入参数以填充到字符串中

   “My name is {}, {} years old”.format('Bill' , 25)

    格式化字段 { } 中可以用数字来引用 str.format() 位置参数,{0} 就代表传入的第一个参数,这样的一个好处是可以更改传入参数的顺序,不必一定得按照传入的顺序来填充字符串,如下:

    如果str.format()中的参数是关键字参数,那么格式化字段 { }中就可以通过关键字来引用,如下:

    位置参数和关键字参数可以混合使用,关与位置参数和关键字参数前的文章中有介绍

1.3 手动格式化字符串

    这种方法需要自己调用相应的方法来对字符串的格式进行设置,这种方法更精细化,特定化,但是操作起来也更繁琐,实际中应用的并不多,举例如下:

1.4 % 操作符格式化字符串

    这个方法来源于c语言,一直被保留下来,使用起来也很简单方便,字符串中, % 用来占位同时指定该字段的类型和格式,然后在字符串外传入实例,例如,%6.3f 中 6是该字段长度,不足的话用空格补齐,.3f指小数点后三位:


2. 文件的读写

2.1 打开文件: open(filename, mode) , 该方法返回一个文件对象用于操作

    mode 有以下几种:

        r:只读, w: 只写, r+: 读写

        a: 将数据写入到文件末尾(如果文件中已有内容)而w的写入会覆盖文件的原内容

        通常文件打开会以文本的格式打开,如果在mode中指定b,如rb, 就代表以二进制的格式打开

             open('test.txt', 'rb')

    直接用open()方法打开文件后,相应的要进行关闭操作,如 f = open('text.txt'), 最后要调用 f.close()来关闭文件。文档更推荐用with 关键字来进行打开文件操作,就不用再额外进行关闭:

        with open('test.txt') as f:

                f.read()

2.2 文件对象的操作方法(假设 f 是一个已经打开的文件对象)

   (1) f.read(size)     #读取指定size的文件内容,f.read()默认读取全部内容,有可能引起内存不足,读取到末尾返回空字符串

    (2)f.readline()     #读取文件的每一行内容,读取到末尾返回空字符串

    (3)f.readlines()    #读取文件的所有行

    (4)f.write(string)    #将字符串的内容写入到文件

    (5)f.tell()                #返回一个数字,代表该文件对象当前所在的位置(相对于二进制模式下文件的      开始位置),如果是文本模式,返回一个模糊的数字

    (6)f.seek(offset, from_what)     

    #改变文件对象所在位置,offset 是相对的偏移量,from_what 有三个选择,0 代表从文件开始位置,1代表从当前位置,2代表从文件末尾。如f.seek(5,0)代表文件对象的位置移动到文件的第6个字节,这些都是在二进制模式下的操作

    # 若是在文本模式下,f.seek()只允许从文本的开始位置进行偏移,或者f.seek(0,2)移动到文本的末尾,offset 的值只能是f.tell() 能够返回的值或者是0


3. 保存结构化数据到json文件

    python中有专门的json 模块来进行结构化数据的存储,弥补了open()方法只能读写文本数据的不足。

    import json

    json.dumps(data)     #    把结构化数据转化为字符串,这个过程叫序列化

    json.dump(data, f)    #    把结构化的数据 序列化之后写入文件,f 是一个文件对象

    json.load(f)                #   把文件中文本转化为结构化数据,这个过程叫去序列化,f 是一个文件对象

    

你可能感兴趣的:(Python官方教程阅读总结-输入输出)