Python文件操作


文件打开:

Infile=open(“num.dat”,”r”)#r,w为读和写文本文件

Infile=open(“music.mp3”,”rb”)#rb,wb为读和写二进制文件


文件读取:

read():返回包含整个文件内容的字符串

readline():返回值为文件下一行内容的字符串

readlines():返回值为文件内容列表,每项以换行符结尾

 

写入文件:

write():把字符串写入文件

writelines():针对列表操作,接受一个字符串列表作为一个参数写入


文件遍历:

    for line in file:
        #每行处理

文件拷贝:

fname1=raw_input().strip()#去空格
    fname2=raw_input().strip()
    f1=open(fname1,"r")
    f2=open(fname2,"w")
    for line in f1:
        f2.write(line)
    f1.close()
    f2.close()


文件合并实例:

TelInformation.txt
姓名: 电话:
嘻嘻 1333333
男男 82782

EmailInformation.txt

姓名: 邮箱:
嘻嘻 123@163.com
东东 124@qq.com

Information.txt
嘻嘻 1333333 123@163.com
男男 82782 not have email
东东 not have tel 124@qq.com


# -*- coding: utf-8 -*-
from math import *
from turtle import *
def main():
    f1=open("TelInformation.txt","r")
    f2=open("EmailInformation.txt","r")
    f3=open("Information.txt","w")
    f1.readline();#第一行信息没用
    f2.readline()
    lines1=f1.readlines()
    lines2=f2.readlines()
    list1_name=[]
    list1_tel=[]
    list2_name=[]
    list2_email=[]
    #将文件1的姓名和tel,文件2的姓名和email单独存储
    for line in lines1:
        list1_name.append(line.split()[0])
        list1_tel.append(line.split()[1])
    for line in lines2:
        list2_name.append(line.split()[0])
        list2_email.append(line.split()[1])
    list3=[]#合并信息放入
    #索引方式遍历列表1的姓名
    for i in range(len(list1_name)):
        if list1_name[i] in list2_name:
            pos=list2_name.index(list1_name[i])
            list3.append(list1_name[i]+' '+list1_tel[i]+' '+list2_email[pos]+'\n')
        else:
            list3.append(list1_name[i] + ' ' + list1_tel[i] + ' ' + 'not have email'+'\n')
    #处理文件1中没有的姓名
    for i in range(len(list2_name)):
        if list2_name[i] not in list1_name:
            list3.append(list2_name[i] + ' ' + "not have tel" + ' ' +list2_email[i]+'\n')
    f3.writelines(list3)
    f1.close()
    f2.close()
    f3.close()
main()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值