Python 输入输出格式化与文件读写

目录

 

一、输入

[var=] input ([提示字符串])(都作为字符串处理)

二、输出

1.print([表达式1, … ,表达式n][,sep=分隔符][,end=结束符])

 2.format(表达式[,格式字符串])

3. 格式字符串.format(表达式1,…,表达式n)

三、文件读写

1.写文件

2.读文件

文件打开方式

文件读写方法

定位位置指针

 


一、输

[var=] input ([提示字符串])(都作为字符串处理)

var:用于接收从键盘输入的数据;如果省略,则会暂停程序运行。如果需要程序暂停t秒,则可以使用time模块的sleep(t)实现(即: time.sleep(t))。

提示字符串:用于显示的提示信息。如果省略,则无提示信息。 • 注意:input()把输入的数据,均作为字符串处理。如果需要按照不同的数据类型使用数据,则可使用类型转换函数

s=(int)input("12")   #s=12
s=complex(input(""))  #复数,5+6j
s=eval(input("姓名,年龄:"))
//输入:'张三', 20。s=('张三', 20)
//自动识别,字符串加引号
//s, t=eval(input("姓名,年龄:"))

二、输出

1.print([表达式1, … ,表达式n][,sep=分隔符][,end=结束符])

【默认sep=‘ ’,end=’\n’。】

符号 输出类型 说明
%[[+|-]n]c 输出ASC||字符 chr() +右对齐 -左对齐
%s 输出字符串 str()  n为总长度
%r 输出表达式 repr()
%d %i %u 输出整数 d为有符号,u为无符号
%o %x 输出八、十六进制  
%e %E 输出实数 科学计数法
%f %F 输出浮点数 定点小数
%g %G 输出实数 自动选择指数或浮点数显示
%Y %m %d %H %M %S 输出年月日时分秒 导入time模块
>>> print('%c%9o%-9o%c'%(65,12,-12,66)) 
A       14-14      B

>>> print('%c%9x%-9X%c'%(65,123,-123,66))
A       7b-7B      

>>> print('%c%22e%-22.2E%c'%(65,12,-123.56789,66))
A          1.200000e+01-1.24E+02             B

>>> import time
>>> print( time.strftime( '%Y-%m-%d %H:%M:%S', time.localtime( time.time())))
2018-02-10 11:06:49

 2.format(表达式[,格式字符串])

符号 说明
[n]c ASC||字符
% 百分号
d | b | o | x | X 十、二、八、十六进制整数
f | F 实数(浮点小数)
e | E 实数(定点小数,科学计数)
填充字符 = 填充字符位于数字和符号之间
< | > | ^ 左对齐 | 右对齐 | 居中
省略格式字符串 等价于str(表达式)
>>> print('%',format(65,'c'),'%',sep='')
%A%

>>> print('%',format(65,'<6c'),format(65,'06c'),'%',sep='')
%A     00000A%

>>> print('%',format(65,'#=6d'),'%',sep='')
%####65%

>>> print('%',format(11,'<6d'),format(22,'06o'),format(12,'6X'),'%',sep='')
%11    000026     C%

>>> print('%',format(11.111,'11.2f'),format(-11.111,'0=-11'),'%',sep='')
%      11.11-000011.111%

>>> print('%',format(132.568,'11.2g'),'%',format(11.111,'016g'),'%',sep='')
%    1.3e+02%000000000011.111%

3. 格式字符串.format(表达式1,…,表达式n)

格式字符串:包括普通字符和格式字符。

普通字符:按照原样输出。

格式字符的格式:

  • {[序号|键[:]][格式字符]}
  • 序号(0,1,2,…)表示格式的顺序;
  • 键用于指向使用该键的数据。
  • 格式字符与format()函数雷同。
>>> print('Hi,{},{},{}'.format('A',12,1.2))
Hi,A,12,1.2

>>> print('Hi,{0:c},{1:d},{2:f}'.format(65,12,1.2))
Hi,A,12,1.200000

>>> print('Hi,{0:<6c},{1:^6d},{2:6.2f}'.format(65,12,1.256))
Hi,A     ,  12  ,  1.26

>>> print('Hi,{0}{1}{2}'.format('Happy','You','!'))
Hi,HappyYou!

三、文件读写

1.写文件

文件对象=open(文件[,打开方式])

文件打开方式主要包括:读、写和追加等。

w | wb、r | rb、a | ab、w+ | wb+、r+ | rb+、a+ | ab+

文件对象.close()

2.读文件

首先以只读方式打开文件,然后读取数据,最后关闭文件。

变量=文件对象.read([n])    #读取n个字符(默认:全部),返回字符串类型。

变量=文件对象.readline([n])   #读取一行字符,返回字符串类型。

变量=文件对象.readlines([n])   #读取当前位置至文件结束,自动将内容拆分成列表。

文件打开方式:

打开文件 说明 注意
w | wb 以只写方式打开一个文本(二进制)文件

如果文件已存在,则清空;

如果文件不存在,则创建。

r | rb 以只读方式打开一个文本(二进制)文件(默认方式)

如果文件不存在,则报错。

a | ab 以追加方式打开一个文本(二进制)文件

如果文件已存在,则追加;

如果文件不存在,则创建。

w+ | wb+ 以读写方式打开一个文本(二进制)文件

如果文件已存在,则清空;

如果文件不存在,则创建。

r+ | rb+ 以读写方式打开文件 如果文件不存在,则报错。
a+ | ab+ 以读写方式打开文件,追加到文件尾

如果文件已存在,则清空;

如果文件不存在,则创建。

文件读写方法:

写文件 说明 读文件 说明
print() 写入字符串,默认换行 fi.read() 读取n个字符,默认全部
fi.write() 写入字符串,默认不换行 fi.readline() 读取一行字符
fi.writelines() 写入多行字符串 fi.readlines() 读取当前位置到结尾
二进制文件先编码(解码),再读(写)
encode() 编码,文本转换为字节型字符串 tell() 返回指针的当前位置
decode() 解码,字节型字符串转换为文本 seek() 从参考位置向前+和向后-移动指针
#写入
>>> fi=open('info.txt', 'w') 
>>> print('HappyYou!', file=fi) 
>>> print('文件名称:', fi.name, file=fi) 
>>> print('是否关闭:', fi.closed, file=fi) 
>>> print('打开方式:', fi.mode, file=fi) 
>>> fi.close () 
>>> fi=open('info.txt', 'r') 
>>> t=fi.read() 
>>> t
'HappyYou!\n文件名称: info.txt\n是否关闭: False\n打开方式: w\n'
>>> print(t, type(t)) 
HappyYou! 
文件名称: info.txt 
是否关闭: False 
打开方式: w 

>>> fi.close()

>>> x=str(123456) 
>>> y=x.encode() 
>>> print(y,type(y)) 
b'123456'  
>>> z=y.decode() 
>>> print(z,type(z)) 
123456 

 

#创建文本文件info1.txt 
>>> fi=open('info1.txt', 'w') 
>>> x=11;y=1.1;z=2+3j;s='abc123';t=True 
>>> print(x,y,z,s,t, file=fi) 
>>> fi.write('世界和平!\n') 
>>> fi.writelines(['Hi, Python!\n','Welcome...\n','Happy You!']) 
>>> fi.close()

#读取文本文件info1.txt 
>>> fi=open('info1.txt','r') 
>>> x=fi.readline() 
>>> y=fi.read(2) 
>>> z=fi.readlines() 
>>> print(x,y,z) 
11 1.1 (2+3j) abc123 True 
世界 ['和平!\n', 'Hi, Python!\n', 'Welcome...\n', 'Happy You!'] 
>>> fi.close()

定位位置指针:

文件对象.tell()

tell():返回位置指针的当前位置。

文件对象.seek([+|-]步长[,参考位置])

seek():从参考位置(默认:0-起始位置;1-当前位置;2-文件末尾), 按照步长向前(+)或者向后(-)移动定位,并返回新的文件位置。 (偏移字节数)

>>> fi=open('info2.txt','rb') 
>>> fi.tell() 
0 
>>> fi.seek(6,0) 
6 
>>> fi.seek(-3,1) 
3 
>>> fi.close()

 

 

 

 

 

 

 

 

你可能感兴趣的:(Python)