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("\033[40;1mhello world\033[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()