python实例之文件操作

str = input("请输入:") 
print("你输入的内容式:", str) 
sum = input("请输入算术表达式:") 
# eval() 函数用来执行一个字符串表达式,并返回表达式的值。 
sum = eval(sum) 
print(sum) 
请输入:python
你输入的内容式: python
请输入算术表达式:3+5
8
#print()函数也可以接受多个字符串,用逗号隔开,打印每个字符串,遇到逗号,会输出一个空格 
print('welcome','to','the python world') 
welcome to the python world
#格式化输出 # %o ---- oct 八进制 # %d ---- dec 十进制 # %x ---- hex 十六进制 
print('%d'%20) 
20
#浮点数的输出 
print('%f'%1.11) #默认保留6位小数 
print('%.1f'%1.11) #取1位小数 
print('%e'%1.11) #默认6位小数,用科学计数法 
print('%.3e'%1.11) #取3位小数 
print('%g'%1111.1111) #默认6位有效数字 
print('%.7g'%1111.1111)#取7位有效数字 
print('%.2g'%1111.1111)#取2位有效数字,自动转化为科学技术法 
1.110000
1.1
1.110000e+00
1.110e+00
1111.11
1111.111
1.1e+03
#内置round()函数 
print(round(1.1125)) #四舍五入,不指定位数,取整 
print(round(1.1135,3)) #取3位小数,由于3是奇数,舍去 
print(round(1.1125,3)) #取3位小数,由于2是偶数,入 
print(round(2.675,2)) 
1
1.113
1.113
2.67
#字符串输出 
# %s #%10s ---- 右对齐,占位符10位 
#%-10s ---- 左对齐,占位符10位 
#%.2s ---- 截取2位字符串 
print('%10.2s'%'hello world') 
print('%-10.2s'%'hello world') 
        he
he        
 

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

#文件打开模式:只读,写入,追加,默认是只读

读取方式

文件写入

 文件操作实例

#文件操作 上下文管理语句with
#with 可以自动管理资源,不论因为什么原因跳出with块总能保证文件被正确关闭。还可以用于数据库连接等
#with open(filename,mode,encoding) as fp:
with open('teleAddressBook.txt','rt',encoding='utf-8') as ftele:
    with open('emailAddressBook.txt','rt',encoding='utf-8') as femail:
        ftele.readline()        #跳过第一行
        femail.readline()
        lines1=ftele.readlines()
        lines2=femail.readlines()
        
        #建立空表用于存储姓名,电话,email
        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')

        #遍历列表1
        for i in range(len(list1_name)):
            s=''
            if list1_name[i] in list2_name:         #查看列表1中的名字是否在列表2中
                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],str('   ----   ')])    #如果列表1中的名字不在列表2中,Email用----填充
                s+='\n'
            lines.append(s)

        for i in range(len(list2_name)):
            s=''
            if list2_name[i] not in list1_name:
                s='\t'.join([list2_name[i],str('   ----   '),list2_email[i]])
                s+='\n'
                lines.append(s)

        #写入文件
        faddress=open('addressbook.txt','w',encoding = 'utf-8')
        faddress.writelines(lines)

#关闭文件
faddress.close()
ftele.close()
femail.close()
print('新的通讯录已经合成')           
 
新的通讯录已经合成
发布了11 篇原创文章 · 获赞 1 · 访问量 188

猜你喜欢

转载自blog.csdn.net/q5c521/article/details/105234786