美文网首页
读写csv、pdf,doc文件

读写csv、pdf,doc文件

作者: 夏威夷的芒果 | 来源:发表于2018-06-27 22:05 被阅读40次

    导入csv模块以后

    读csv文件

    需要调用csv.reader(),读谁括号里传谁。

    import csv
    path1 = r'/Users/miraco/PycharmProjects/untitled/titanic_data.csv'
    
    with open(path1,'r') as f:
        reader = csv.reader(f)   #一锅端了
        for row in reader:
            print(row)
    
    >>>['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked']
    ['1', '0', '3', 'Braund, Mr. Owen Harris', 'male', '22', '1', '0', 'A/5 21171', '7.25', '', 'S']
    ['2', '1', '1', 'Cumings, Mrs. John Bradley (Florence Briggs Thayer)', 'female', '38', '1', '0', 'PC 17599', '71.2833', 'C85', 'C']
    ['3', '1', '3', 'Heikkinen, Miss. Laina', 'female', '26', '0', '0', 'STON/O2. 3101282', '7.925', '', 'S']
    ['4', '1', '1', 'Futrelle, Mrs. Jacques Heath (Lily May Peel)', 'female', '35', '1', '0', '113803', '53.1', 'C123', 'S']
    ['5', '0', '3', 'Allen, Mr. William Henry', 'male', '35', '0', '0', '373450', '8.05', '', 'S']
    ['6', '0', '3', 'Moran, Mr. James', 'male', '', '0', '0', '330877', '8.4583', '', 'Q']
    

    这里每一行都是一个list列表

    写入csv文件

    调用csv.writer(),读谁括号里传谁

    path2 = r'/Users/miraco/PycharmProjects/untitled/titanic_test.csv'
    
    with open(path2,'w') as f:   
    #使用‘w’模式打开文件,之前的东西会被删除
    #如果想保留之前数据,请用'a'模式。
        writer = csv.writer(f)  
        writer.writerow([1,2,3,4,5,6])   #按行写的,再写一次自动换行
    
    运行结果

    读pdf 输出txt

    import sys
    import importlib
    importlib.reload(sys)
    
    from pdfminer.pdfparser import PDFParser, PDFDocument
    from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
    from pdfminer.converter import PDFPageAggregator
    from pdfminer.layout import LTTextBoxHorizontal,LAParams
    from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
    
    
    path = r'/Users/miraco/PycharmProjects/untitled/mobility0415.pdf'
    
    def readpdf(filepath):
        fp = open(filepath,'rb')
        parser = PDFParser(fp)  #
        doc = PDFDocument()
        #让解析器和文档相互关联
        parser.set_document(doc)
        doc.set_parser(parser)
    
        doc.initialize() #(self,password)
        if not doc.is_extractable:
            raise PDFTextExtractionNotAllowed
        else:
            rsrcmgr = PDFResourceManager()
            laparams = LAParams()
            device = PDFPageAggregator(rsrcmgr,laparams = laparams)
    
            interprete = PDFPageInterpreter(rsrcmgr,device)
            for page in doc.get_pages():
                interprete.process_page(page)
                layout = device.get_result()
    
                for x in layout:
                    if isinstance(x,LTTextBoxHorizontal):
                        with open(r'/Users/miraco/PycharmProjects/untitled/mobility0415.txt','a') as f:
                            results = x.get_text()
                            f.write(results + '\n')
    
    readpdf(path)
    

    读取docx

    #读取docx中的文本代码示例
    import docx
    #获取文档对象
    file=docx.Document("xxxx.docx")
    print("段落数:"+str(len(file.paragraphs)))#段落数为13,每个回车隔离一段
    
    #输出每一段的内容
    for para in file.paragraphs:
        print(para.text)
    
    #输出段落编号及段落内容
    for i in range(len(file.paragraphs)):
        print("第"+str(i)+"段的内容是:"+file.paragraphs[i].text)
    

    MacOS 读取doc或docx

    准备工作,python的textract模块想要用,需要你先装上antiword、swig,这个如果是Linux环境可以使用
    brew install swig
    brew install antiword
    pip3 install textract
    
    import textract
    text = textract.process(" 老子想弄的文件.doc")
    print(text.decode('utf-8'))
    

    运行结果是带空格的,保持了相对位置

    超级6

    附件
                           2017年度政府信息公开情况统计表
    
    |统  计  指  标                          |单位 |统计数 |备注        |
    |一、主动公开情况                        |--   |--     |            |
    |    主动公开政府信息数                  |条   |5490   |            |
    |(不同渠道和方式公开相同信息计1条)     |     |       |            |
    |其中:主动公开规范性文件数              |条   |90     |            |
    |制发规范性文件总数                      |件   |123    |            |
    |(二)通过不同渠道和方式公开政府信息的情|--   |--     |            |
    |况                                      |     |       |            |
    |  1.政府公报公开政府信息数              |条   |136    |            |
    |  2.政府网站公开政府信息数              |条   |5490   |            |
    |  3.政务微博公开政府信息数              |条   |2034   |            |
    |  4.政务微信公开政府信息数              |条   |1240   |            |
    |二、依申请公开情况                      |--   |--     |            |
    |    (一)收到申请数                    |件   |1993   |            |
    |          1.当面申请数                  |件   |18     |            |
    |          2.传真申请数                  |件   |1      |            |
    |          3.网络申请数                  |件   |1423   |            |
    |          4.信函申请数                  |件   |551    |            |
    |统  计  指  标                          |单位 |统计数 |备注        |
    |(二)申请办结数                        |件   |1989   |4件因征求第 |
    |                                        |     |       |三方意见延期|
    |                                        |     |       |未办结      |
    |       1.按时办结数                     |件   |1829   |其中2件撤销/|
    |                                        |     |       |无效        |
    |      2.延期办结数                      |件   |158    |            |
    |(三)申请答复数                        |件   |1988   |            |
    |     1.属于已主动公开范围数             |件   |151    |            |
    |     2.同意公开答复数                   |件   |285    |            |
    |     3.同意部分公开答复数               |件   |167    |            |
    |     4.不同意公开答复数                 |件   |11     |            |
    |       其中:涉及国家秘密               |件   |2      |            |
    |                 涉及商业秘密           |件   |0      |            |
    |                 涉及个人隐私           |件   |0      |            |
    |                                        |件   |0      |            |
    |危及国家安全、公共安全、经济安全和社会稳|     |       |            |
    |定                                      |     |       |            |
    |                                        |件   |9      |            |
    |不属于《条例》所指应公开的政府信息        |     |       |            |
    |         5.不属于本行政机关公开数       |件   |118    |            |
    
    |统  计  指  标                          |单位 |统计数 |备注        |
    |      6.申请信息不存在数                |件   |331    |            |
    |       7.告知作出更改补充数             |件   |57     |            |
    |      8.不属于《条例》调整范围的数        |件   |840    |            |
    |      9.不重复答复的数                  |件   |27     |            |
    |三、行政复议数量                        |件   |6      |            |
    |(一)维持具体行政行为数(含驳回复议申请|件   |6      |            |
    |)                                      |     |       |            |
    |(二)被依法纠错数                      |件   |0      |            |
    |(三)其他情形数                        |件   |0      |            |
    |四、行政诉讼数量                        |件   |9      |            |
    |                                        |件   |9      |            |
    |(一)维持具体行政行为或者驳回原告诉讼请|     |       |            |
    |求数                                    |     |       |            |
    |    (二)被依法纠错数                  |件   |0      |            |
    |    (三)其他情形数                    |件   |0      |            |
    |五、投诉举报数量                        |件   |0      |            |
    |六、依申请公开信息收取的费用            |万元 |0      |            |
    
    

    相关文章

      网友评论

          本文标题:读写csv、pdf,doc文件

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