zoukankan      html  css  js  c++  java
  • python 格式化输出和文件操作(自带)

    CONTENTS

    •  格式化输出
      • 两种常用的格式化输出方式
        • %用法
        • .format()用法
      • 带颜色,底纹样式的输出
    • python自带文件操作
      • 操作模式
      • 常用方法

    格式化输出

    1. % 用法

    1 name = input("username:")
    2 password = input("password:")
    3 info = '''------------------
    4     username:%s
    5     password:%s
    6         ''' % (name, password)
    7 print(info)

    通过%s提供字符串占位符,然后在%后输入占位符的内容。

    在交互界面中,往往希望输入的密码是密文,可以使用如下模块的方法代替input:

    1 import getpass
    2 password = getpass.getpass("password:")   # 代替input("password:")

    P.S.% 后可占位的类型

    符号 说明
    %s

    字符串

    %c

    字符

    %i   

    整数

    %d 十进制
    %o 八进制
    %x 十六进制
    %e 浮点数

    2. format的用法

     1 name = input("name:")
     2 age = input("age:")
     3 job = input("job:")
     4 salary = input("salary:")
     5 info = '''
     6 ------------------- information of {0} ------------------
     7     Name:   {0}
     8     age:    {1}
     9     job:    {2}
    10     salary  {3} 
    11 '''.format(name, age, job, salary)
    12 print(info)

    {0}...与%s的效果相同,也是起到占位符的效果。

    当然,在{ }中,也可以使用关键字:

     1 name = input("name:")
     2 age = input("age:")
     3 job = input("job:")
     4 salary = input("salary:")
     5 info = '''
     6 ------------------- information of {0} ------------------
     7     Name:   {_name}
     8     age:    {_age}
     9     job:    {_job}
    10     salary  {_salary} 
    11 '''.format(_name = name, _age = age, _job = job, _salary = salary)
    12 print(info)

     打印输出具有颜色或底纹效果

    1 print("33[40;1mhello world33[0m")
    字体颜色 底纹颜色
    30 白色 40 白色
    31 红色 41 红色
    32 黄色 42 黄色
    33 橘黄色 43 橘黄色
    34 蓝色 44 蓝色
    35 紫色 45 紫色
    36 绿色 46 绿色
    37 灰色 47 灰色

    其中,可以更改代码中的40来调节不同字体或底纹颜色,如上表所示。

    python自带文件操作

    1. 文件操作模式

    • r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
    • w,只写模式【不可读;不存在则创建;存在则清空内容
    • x, 只写模式【不可读;不存在则创建,存在则报错
    • a, 追加模式【可读;   不存在则创建;存在则只追加内容】,文件指针自动移到文件尾。

    "+" 表示可以同时读写某个文件

    • r+, 读写【可读,可写】
    • w+,写读【可读,可写】,消除文件内容,然后以读写方式打开文件。
    • x+ ,写读【可读,可写】
    • a+, 写读【可读,可写】,以读写方式打开文件,并把文件指针移到文件尾。

     "b"表示以字节的方式操作,以二进制模式打开文件,而不是以文本模式。

    • rb  或 r+b
    • wb 或 w+b
    • xb 或 w+b
    • ab 或 a+b

     注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型(b"字符串"),不能指定编码

    2. 常用方法

    f.read()  # read([size])方法从文件当前位置起读取size个字节,若无参数size,则表示读取至文件结束为止,它范围为字符串对象

    f.readline()  # 该方法每次读出一行内容,所以,读取时占用内存小,比较适合大文件,该方法返回一个字符串对象

    f.readlines()  # 读取整个文件所有行,保存在一个列表(list)变量中,然后一行一行输出。 也是先全部读入内存中不适合较大文件

    f.write()   # 写操作

    f.close()  # 关闭文件句柄

    f.tell()  # 光标所在位置(按字符的个数)

    f.seek  # 光标回到某一位置

    f.readable # 是否可读

    f.writeable # 是否可写

    f.seekable # 光标是否可移

    1 import time
    2 f = open("圣所.txt", "r", encoding="utf-8")
    3 lines = f.readlines()  # 模拟播放器,逐行输出歌词
    4 for line in lines:
    5     time.sleep(1)
    6     print(line)
    7 f.close

    使用下述语句进行操作,便不用再进行关闭文件操作:

    with open("圣所.txt", "r", encoding = "utf-8") as f:
        f.read()

    一种逐行输出的高效循环方式:

    读一行,只在内存中存一行,再读一行后清空之前的,省内存

    1 # 高效的循环方式:
    2 with open("圣所.txt", "r", encoding="utf-8") as f:
    3     for line in f:   # line相当于是迭代器
    4 time.sleep(1) 5 print(line)

    同时打开多个文件:

    1 with open("圣所.txt", "r", encoding= "utf-8") as f, 
    2     open("伟大的渺小.txt", "r", encoding= "utf-8") as f1:
    3     f.read()    
    4     f1.read()
  • 相关阅读:
    51Nod 1267 4个数和为0 二分
    51Nod 1090 3个数和为0 set 二分优化
    51Nod 1001 数组中和等于K的数对 Set
    Codeforces 890C
    Codeforces 890B
    Codeforces 890A
    51nod 1058 N的阶乘的长度 位数公式
    C#调用本机摄像头
    读取、写入excel数据
    数据库笔记--基本应用
  • 原文地址:https://www.cnblogs.com/monologuesmw/p/9575034.html
Copyright © 2011-2022 走看看