Python输入输出与文件操作

输入输出与文件:
1、输入输出
输入
Python提供了input()内置函数从标准输入读入一行文本。
input()函数也可以接受一个Python表达式作为输入,并将运算结果返回。
input()函数的返回值永远是字符串,返回int型时需要使用int(input())。
eval()函数用来执行一个字符串表达式,并返回值。
输出
print()
格式化输出:
%o——oct 八进制
%d——dec 十进制
%x——hex 十六进制

print('%o'%20)
24
print('%d'%20)
20	
print('%x'%20)
14

浮点数的输出:(1)格式化输出

print('%f'%1.11)#默认保留6位小数
1.110000
print('%.1f'%1.11)#取一位小数
1.1
print('%e'%1.11)#默认6位小数,用科学计数法
1.110000e+00
print('%.3e'%1.11)#取3位小数,用科学计数法
1.110e+00

(2)内置round()函数
round(number[,ndights])
参数:
numbers-数字表达式
ndights-从小数点到最后四舍五入的位数,默认为0。
当只有一个参数时,返回一个整数,而且是最靠近的整数,类似于四舍五入。
当碰到.5的情况时,如果要取舍的位数前是奇数,则直接舍弃,如果是偶数则向上取舍。
字符串输出
%s
%10s——右对齐,占位符10位
%.2s——截取2位字符串
2、文件操作
文件编码:
ASCll码:单字节编码,两个字节表示一个汉字
Unicode:两个字节表示一个字符
UTF-8:可变长度的Unicode的实现方式
使用1~4个字节表示一个符号,根据不同的符号而变化字节长度
文件类型:文本文件,二进制文件
操作:
打开文件:建立磁盘上的文件与程序中的对象相关联
操作:读取,写入,定位,追加,计算等
关闭文件:切段文件与程序联系
打开文件
Python通过解释器内置的open()函数打开一个文件,格式如下:

<变量名>=open(<文件名>,<打开模式>)

7种打开模式:
r:读模式(默认模式,可省略)
w:写模式,如果文件已存在,先清空原有模式;如果不存在,创建新文件
x:写模式,创建新文件
a:追加模式,不覆盖文件原有内容
b:二进制模式
t:文本模式(默认模式,可省略)
+:读、写模式
4种文件读取方法:
.readall():读入整个文件内容,返回一个字符串或字节流
.read(size=-1):从文件中读入整个文件内容,如果给出参数,读入前size长度的字符串或字节流
.readline(size=-1):从文件中读入一行内容,如果给出参数,读入前size长度的字符串或字节流
.readlines(hint=-1)从文件中读入所有行,以每行为元素形成一个列表,如果给出参数,读入hint行
文件写入:
.write(s):向文件写入一个字符串或字节流
.writelines(lines):将一个元素为字符串的列表写入文件
.seek(offset):0:文件开头 1:当前位置 2:文件结尾
上下文管理语句with
在实际开发中,读写文件应优先考虑上下文管理语句with。关键字with可以自动管理资源,不论因为什么原因跳出with块,总能保证文件被正确关闭。除了用于文件操作,with关键字还可以用于数据库连接、网络连接或类似场合。
文件操作示例:
在这里插入图片描述

编写程序将电话簿TeleAddressBook.txt和电子邮件EmailAddressBook.txt合并为一个完整的AddressBook.txt

with open(r'C:\Users\孙昊\Desktop\学习\读芯术\第三部分 Python编程进阶\code 1、输入输出与文件操作\teleAddressBook.txt','rt') as ftele1:
    with open(r'C:\Users\孙昊\Desktop\学习\读芯术\第三部分 Python编程进阶\code 1、输入输出与文件操作\emailAddressBook.txt','rt') as ftele2:
        ftele1.readline()
        ftele2.readline()
        lines1=ftele1.readlines()
        lines2=ftele2.readlines()
        list1_name=[]
        list1_tele=[]
        list2_name=[]
        list2_email=[]
        
        for line in lines1:
            elements=line.split()
            list1_name.append(elements[0])
            list1_tele.append(elements[1])
        
        for line in lines2:
            elements=line.split()
            list2_name.append(elements[0])
            list2_email.append(elements[1])
            
        #生成新数据(表头)
        lines=[]
        lines.append('姓名\t电话\t\t邮箱\n')
        for i in range(len(list1_name)):
            s=''
            if list1_name[i] in list2_name:
                j=list2_name.index(list1_name[i])
                s='\t'.join([list1_name[i],list1_tele[i],list2_email[j]])
                s+='\n'
            else:
                s='\t'.join([list1_name[i],list1_tele[i],'   ----   '])
                s+='\n'
            lines.append(s)
        for i in range(len(list2_name)):
            s=''
            if list2_name[i] in list1_name:
                s='\t'.join([list1_name[i],'   ----   ',list2_email[j]])
                s+='\n'
                lines.append(s)
        ftele3=open(r'C:\Users\孙昊\Desktop\学习\读芯术\第三部分 Python编程进阶\code 1、输入输出与文件操作\addressbook.txt','w')
        ftele3.writelines(lines)
ftele3.close()
ftele2.close()
ftele1.close()
print('操作完成')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值