zoukankan      html  css  js  c++  java
  • 用python将多个文档合成一个

    可以参考下以下网址(读写文件):https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386820066616a77f826d876b46b9ac34cb5f34374f7a000

    Python:文件的读取、创建、追加、删除、清空

    一、用Python创建一个新文件,内容是从0到9的整数, 每个数字占一行:

    #python
    >>>f=open('f.txt','w')    # r只读,w可写,a追加
    >>>for i in range(0,10):f.write(str(i)+'
    ')
    >>> f.close()

    二、文件内容追加,从0到9的10个随机整数:

    >>>import random
    >>>f=open('f.txt','a')
    >>>for i in range(0,10):f.write(str(random.randint(0,9)))
    >>>f.write('
    ')
    >>>f.close()

    三、文件内容追加,从0到9的随机整数, 10个数字一行,共10行:

    >>> import random
    >>> f=open('f.txt','a')
    >>> for i in range(0,10):
    .  .  .     for i in range(0,10):f.write(str(random.randint(0,9))) 
    .  .  .     f.write('
    ')    
    .  .  .
    >>> f.close()

    四、把标准输出定向到文件:

    >>> import sys
    >>> sys.stdout = open("stdout.txt", "w")
    >>>  . . .

    五、文件的读写
    一、文件打开:
    f = file(name[, mode[, buffering]])

    入口参数:   name 文件名
                      mode   选项,字符串
                      buffering   是否缓冲 (0=不缓冲,1=缓冲, >1的int数=缓冲区大小)
    返回值 : 文件对象
    mode 选项:
    "r"   以读方式打开,只能读文件 , 如果文件不存在,会发生异常      
    "w" 以写方式打开,只能写文件, 如果文件不存在,创建该文件,如果文件已存在,先清空,再打开文件
    "rb"   以二进制读方式打开,只能读文件 , 如果文件不存在,会发生异常      
    "wb" 以二进制写方式打开,只能写文件, 如果文件不存在,创建该文件,如果文件已存在,先清空,再打开文件
    "rt"   以文本读方式打开,只能读文件 , 如果文件不存在,会发生异常      
    "wt" 以文本写方式打开,只能写文件, 如果文件不存在,创建该文件,如果文件已存在,先清空,再打开文件
    "rb+"   以二进制读方式打开,可以读、写文件 , 如果文件不存在,会发生异常      
    "wb+" 以二进制写方式打开,可以读、写文件, 如果文件不存在,创建该文件,如果文件已存在,先清空,再打开文件


    二、关闭文件
    f.close()
    当文件读写完毕后,应关闭文件。


    三、清空文件内容
    f.truncate()
    注意:仅当以 "r+"   "rb+"    "w"   "wb" "wb+"等以可写模式打开的文件才可以执行该功能。


    四、文件的指针定位与查询
    (1)文件指针:
          文件被打开后,其对象保存在 f 中, 它会记住文件的当前位置,以便于执行读、写操作,这个位置称为文件的指针( 一个从文件头部开始计算的字节数 long 类型 )。
    (2)文件打开时的位置:
          以"r"   "r+"   "rb+" 读方式, "w"   "w+"   "wb+"写方式 打开的文件,一开始,文件指针均指向文件的头部。
    (3) 获取文件指针的值:
          L = f.tell()
    (4) 移动文件的指针
           f.seek(   偏移量, 选项 )
          选项 =0 时, 表示将文件指针指向从文件头部到 "偏移量"字节处。
          选项 =1 时, 表示将文件指针指向从文件的当前位置,向后移动 "偏移量"字节。
          选项 =2 时, 表示将文件指针指向从文件的尾部,,向前移动 "偏移量"字节。


    五、从文件读取指内容   
    1 文本文件(以"rt"方式打开的文件)的读取  
           s = f.readline(     )
            返回值: s 是字符串,从文件中读取的一行,含行结束符。
            说明: (1)  如果 len( s ) =0 表示已到文件尾
                        (2)   如果是文件的最后一行,有可能没有行结束符
    2 二进制文件(以"rb"、"rb+"、"wb+" 方式打开的文件)的读取  
              s = f.read(    n )
         说明: (1)  如果 len( s ) =0 表示已到文件尾
                   (2)   文件读取后,文件的指针向后移动 len(s) 字节。
                 (3)如果磁道已坏,会发生异常。


    六、向文件写入一个字符串   
        f.write(    s )
        参数:       s 要写入的字符串
        说明: (1)文件写入后,文件的指针向后移动 len(s) 字节。
                     (2)如果磁道已坏,或磁盘已满会发生异常。
    返回值: s 是字符串,从文件中读取的内容

    七、删除文件
    import os
    os.remove(file)

    这个是转自http://www.open-open.com/lib/view/open1413527388231.html

    接下来是将多个文档合并成一个文档的程序

    import numpy as np
    import os,re,time,logging
    class loadFolders(object):   # 迭代器
        def __init__(self,par_path):
            self.par_path = par_path
        def __iter__(self):
            for file in os.listdir(self.par_path):
                file_abspath = os.path.join(self.par_path, file)
                if os.path.isdir(file_abspath): # if file is a folder
                    yield file_abspath
    class loadFiles(object):
        def __init__(self,par_path):
            self.par_path = par_path
        def __iter__(self):
            folders = loadFolders(self.par_path)
            for folder in folders:              # level directory
                #catg = folder.split(os.sep)[-1]
                for file in os.listdir(folder):     # secondary directory
                    file_path = os.path.join(folder,file)
                    if os.path.isfile(file_path):
                        this_file = open(file_path,'rb')
                        content = this_file.read().decode('utf8')
                        yield re.sub(r's{2,}', '', content)
                        this_file.close()
    if __name__=='__main__':
         path_doc_root = 'F:\THUCNews\chinesenew'
         n=10
         f=open("F:\THUCNews\chinesenew\财经.txt",'w',encoding='utf-8')
         files = loadFiles(path_doc_root)
         for msg in files:
             f.write(msg+'
    ')
    f.close()
  • 相关阅读:
    推荐一款快得令地发指本地搜索软件:Everything,绝对改变对NTFS的看法
    “/”应用程序中的服务器错误 WebParts开发时出现的错误
    《让人无法说 NO的攻心说话术》摘要
    UXWEEK
    2012中国交互设计体验日演讲实录
    彩色铅笔入门
    ClickOnce证书签名
    DevExpress控件使用小结
    解决ClickOnce签名过期问题
    属于自己的小小空间
  • 原文地址:https://www.cnblogs.com/wxj1129549016/p/9533808.html
Copyright © 2011-2022 走看看