美文网首页
python---基本知识22之文件操作举例

python---基本知识22之文件操作举例

作者: hello_我的哥 | 来源:发表于2018-01-30 22:52 被阅读55次

    例子1:我们复制一个文本文件到另一个文本文件:

    首先大致分为3步,第一打开文本文件A,打开文本文件B:

    file_a=open('a.text','r',encoding='utf-8')

    file_b=open('b.text','w',encoding='utf-8')

    第二步得到文件A的内容并往文件B写入:

    a_content=file_a.read()

    file_b.write(a_content)

    第三步关闭文件A,文件B:

    file_a.close()

    file_b.close()

    就完成了,你会发现太简单了,就6行代码!

    这种情况是针对小文件,那么如果是大文件怎么办呢?肯定不能一次把1G或者10G全部加载到内存吧,那样的话,电脑就炸了。这样的话,我们只能一小部分一小部分的去读,在一些部分一小部分的写,下面写两种方式:

    第一种方式,大家可以看到喔复制的是androidstdio的安装包,有两个G,我用时间算了一下,14秒作用的时间,还是挺快的,使用的是遍历file_a迭代器,但是这种方法不是很好,因为按照这种方式迭代是根据换行符作边界的,那如果没有换行符,就出大问题了,所以就有第二种方式

    import time

    start=time.clock()

    file_a=open('D:\development_tool/android_stdio/android-studio-bundle-162.4069837-windows.exe','rb') file_b=open('b.exe','ab')

    for i in file_a:

    file_b.write(i)

    file_a.close()

    file_b.close()

    end=time.clock()

    print(end-start)

    第二种方式:我们每次都读取1兆往里面写:当取出来没内容的时候,就不写了

    import time

    start=time.clock()

    file_a=open('D:\development_tool/android_stdio/android-studio-bundle-162.4069837-windows.exe','rb') file_b=open('b.exe','ab')

    while True:

        a_content=file_a.read(10240)

        if len(a_content)==0:

            break

        file_b.write(a_content)

    file_a.close() 

    file_b.close()

    end=time.clock()

    print(end-start)

    例子2:文件分类处理:

    import os

    import shutil

    os.chdir('text')

    list_dir=os.listdir('./')

    for i in list_dir:

        index=i.rfind('.')

        suffix=i[index+1:]

    if not os.path.exists(suffix):

        os.mkdir(suffix)

    shutil.move(i,suffix)

    例子3:把文件夹以及文件输出成一个文本,便于查看:这个例子也没什么难点,我们写程序主要就是要搞清楚流程,一步一步的来,不能操之过急,一步一步分解,最终就能全部写完了;

    import os

    def printfile(path,file):

        dir_list=os.listdir(path)

        for dir in dir_list:

        newaddress=path+'/'+dir

         if os.path.isdir(newaddress):

            file.write(newaddress+"\n")

        printfile(newaddress,file)

        else:

            file.write('\t'+dir+"\n")

    file=open('text/data.text','a')

    printfile('text',file)

    file.close()

    相关文章

      网友评论

          本文标题:python---基本知识22之文件操作举例

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