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]cASC||字符
%百分号
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 
<class 'str'>
>>> fi.close()

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

 

#创建文本文件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()

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值