09文件

作者: 无敌帅帅头 | 来源:发表于2018-12-26 16:50 被阅读0次

    一.文件基础操作

    1.步骤

        1).以指定的方式打开文件

        2)..关闭文做相关操

        3)..关闭文件

    fp = open('xxx.txt','w')

    fp.write('open')

    fp.close()

    2.read()读操作

    fp = open('xxx.txt','r')

    st = fp.read()

    print(st)

    fp.close()

    3.write()方法

    python2和python3 默认打开文件的编码是不同的

    python2操作文件的时候,默认使用utf-8编码

    python3默认操作文件的时候,如果没有指定编码,默认将使用自带的编码进行编码

    python3打开一个文件的时候,要指定文件的编码,encoding参数

    fp = open('xxx.txt','w',encoding='utf-8')

    fp.write('open')

    fp.close()

    4.读方式打开文件,不能用于写入文件

    fp = open('xxx.txt','r',encoding='utf-8')

    fp.write('open')

    fp.close()

    5.w写方式打开文件,不能用于读,并且会覆盖掉原来的数据

    fp = open('xxx.txt','w',encoding='utf-8')

    fp.write('中国')

    fp.close()

    6.a追加方式打开文件,不能用于读,不会覆盖原来的数据

    fp = open('xxx.txt','a',encoding='utf-8')

    fp.write('中国1')

    fp.close()

    7.r+读写方式打开文件(r的基因),在读的基础上增加了写得功能

    fp = open('xxx.txt','r+',encoding='utf-8')

    fp.write('123')

    fp.close()

    8.w+读写方式打开文件(w的基因)

    w+:不管是去读还是去写,只要以w+的方式打开文件

    那么就会把原来文件删掉,重新创建一个新的文件

    所以如果是去读,读的永远是空的字符串

    fp = open('xxx.txt','w+',encoding='utf-8')

    fp.write('三国')

    fp.close()

    fp = open('xxx.txt','w+',encoding='utf-8')

    test = fp.read()

    print(test)

    fp.close()

    二.文件读取的三种方式

    1.read函数

    fp=open('xxx.txt','r')

    str =fp.read(5)

    print(str)

    fp.close()

    readline函数

    fp=open('xxx.txt','r')

    str =fp.readline()

    print(str)

    str1 =fp.readline()

    print(str1)

    str2 =fp.readline()

    print(str2)

    fp.close()

    2. readlines函数

    fp=open('xxx.txt','r')

    all_str =fp.readlines()

    for linein all_str:

    print(line)

    fp.close()

    3. 遍历文件指针对象

    fp=open('xxx.txt','r')

    for linein fp:

    print(line)

    fp.close()

    三.文件写操作

    1.write函数

    2. writelines函数

    fp =open('xxx2.txt','w')

    a = ['s\n','d\n','m\n']

    fp.writelines(a)

    fp.close()

    四.文件定位操作

    1.tell方法,获取当前文件指针所在位置

    fp =open('xxx.txt','r',encoding='utf-8')

    position = fp.tell()

    print(position)

    test = fp.read(5)

    print(test)

    position = fp.tell()

    print(position)

    fp.close()

    2.seek函数,改变当前指针所在位置

    fp =open('xxx2.txt','r',encoding='utf-8')

    fp.seek(5,0)

    print(fp.tell())

    test = fp.read()

    print(test)

    fp.close()

    fp =open('xxx2.txt','r',encoding='utf-8')

    #先把文件指针移动到末尾

    fp.seek(0,2)

    end = fp.tell()

    print(end)

    temp = end-3

    fp.seek(temp,0)

    test = fp.read()

    print(test)

    fp.close()

    五. with open打开文件

    with open('xxx.txt','w',encoding='utf-8')as fp:

        fp.write('666')

    六. 案例

    1. 复制

    方法一

    fp =open('xxx2.txt','r',encoding='utf-8')

    test =str(fp.readlines())

    print(test)

    fp.close()

    fp2 =open('xxx.txt','w',encoding='utf-8')

    fp2.writelines(test)

    fp2.close()

    方法二  a>=[]=>b

    lines = []

    with open('xxx2.txt','r',encoding='utf-8')as fp:

    for linein fp:

    lines.append(line)

    with open('xxx.txt','w',encoding='utf-8')as fp:

    fp.writelines(lines)

    方法三

    with open('xxx.txt','r')as fp:

    with open('xxx(copy)','w')as fp2:

    for linein fp:

    fp2.write(line)

    2. 删除病毒代码

    lines= []

    with open('test.txt','r',encoding='utf-8')as fp:

            virs =False

            for linein fp:

                if line.startswith('<meta http-equiv=Content-Type content="text/html;charset=utf-8">'):

                    virs =True

              elif line.startswith('</title>'):

                    virs =False

             else:

                      if not virs:

                       lines.append(line)

    print(lines)

    3.实例

    with open('test.txt','w',encoding='utf-8')as fp:

    fp.writelines(lines)

    var =True

    def fun_not_var(var_data):

    if not var_data:

    print('哈哈哈哈')

    else:

    print('嘿嘿嘿')

    fun_not_var(var)

    def fun_var(var_data):

    if var_data:

    print('哈哈哈哈')

    else:

    print('嘿嘿嘿')

    fun_var(var)

    person1 ='中国人'

    person2 ='南非'

    if not person2 =='中国人':

    print('不可以上战舰')

    else:

    print('可以上战舰')

    x = [1,2,3]

    x.remove(3)

    print(x)

    相关文章

      网友评论

          本文标题:09文件

          本文链接:https://www.haomeiwen.com/subject/slnhlqtx.html