python操作文件

【机器学习案列-02】基于酒店文本描述的相似酒店推荐案列 Seattle_Hotels数据集是西雅图酒店数据,数据集下载地址,数据集包含三个字段:酒店姓名、地址、以及内容描述。其中每一行代表一个酒店,数据集的具体格式将在代码实现部分进行展示。 阅读详情

1 python操作csv文件

import csv
from itertools import islice
​
# 写入csv文件
def write_csv_custom(csv_path):
    # 中文乱码可以使用encoding="utf_8_sig"
    with open(csv_path, "w", newline="", encoding="UTF-8") as csv_file:
        # 自定义特定属性下添加‘"’,例如:数字不能添加双引号,字符串需要添加双引号
        csv_writer = csv.writer(csv_file, quoting=csv.QUOTE_NONE, quotechar="")
        # 写入数据
        csv_writer.writerow([1, '"English"', '"python"'])

# 写入csv文件
def write_csv(csv_path):
    # 中文乱码可以使用encoding="utf_8_sig"
    with open(csv_path, "w", newline="", encoding="UTF-8") as csv_file:
        # 软件不会自动添加双引号
        csv_writer = csv.writer(csv_file)
        # 写入数据
        csv_writer.writerow(['Chinese', 'English', 'python'])
​
# 读csv文件
def read_csv(csv_path):
    with open(csv_path, "r", encoding="UTF-8") as csv_file:
        csv_reader = csv.reader(csv_file)
        # 读取每一行
        for row in csv_reader:
            print(row)
​
    # 跳过前n行
    with open(csv_path, "r", newline="", encoding="UTF-8") as csv_file:
        csv_reader = csv.reader(csv_file)
        # 读取每一行
        for row in islice(csv_reader, 20, None):
            print(row)
​
if __name__ == '__main__':
    path = "/home/mason.csv"
    write_csv(path)
    read_csv(path)

2 python操作json文件

import json
​
# 写json文件
def write_json(json_path):
    with open(json_path, "w", encoding="UTF-8") as json_file:
        # 写入一个键值对
        text_dict = dict(data="chinese")
        json.dump(text_dict, ensure_ascii=False, fp=json_file, indent=4)
​
# 读取json文件
def read_json(json_path):
    with open(json_path, "r", encoding="UTF-8") as json_file:
        # text是对象
        text = json.load(json_file)
        print(text["data"])
​
if __name__ == '__main__':
    path="/home/mason.json"
    write_json(path)
    read_json(path)

3 python操作excel文件

使用pandas读取excel,也可使用xlrd操作excel文件

import pandas as pd
​
def read_excel(excel_path):
    df_data = pd.read_excel(excel_path)
    # 读取行
    for row in df_data.itertuples():
        # 读取行的第一列
        print(row._1)

4 python读pdf

方法1:使用pymupdf读取pdf中的文本(推荐此方法)。

注意:下面的方法是旧版本,新版本有新的方法,可参考官网。此外:pymupdf结合RAG技术出了了新的包 pymupdf4llm。

import fitz

# 此种方法可以解析含有“许可口令”的pdf文件
def parse_pdf(pdf_path):
    doc_obj = fitz.open(pdf_path)
    pages = doc_obj.pages()

    text = ""
    for page in pages:
        temp_text = page.get_text()

        # 清洗text
        temp_text = temp_text.encode(errors="utf-8").decode(errors='ignore', encoding="utf-8")
        temp_text = temp_text.replace('\t', '').replace('\n', '').replace('\r\n', '')
        temp_text = ' '.join(temp_text.split())
        text = text + temp_text

    return text

方法2:使用PyPDF2读取pdf文件

pip install PyPDF2


import PyPDF2
from PyPDF2.errors import DependencyError


def parse_pdf(pdf_path):
    pdf_file_obj = open(pdf_path, 'rb')
    try:
        pdf_reader = PyPDF2.PdfFileReader(pdf_file_obj)
    except DependencyError as e:
        print(e)
        return "-1"

    # 判断文件是否加密
    if pdf_reader.isEncrypted:
        # decrypt方法是输入加密的密码对返回1,错返回0
        return "-1"
    # 获取pdf文件的页数
    page_len = pdf_reader.numPages
    text = ""
    for page_num in range(page_len):

        cur_page = pdf_reader.getPage(page_num)
        temp_text = cur_page.extractText()

        # 清洗text
        temp_text = temp_text.encode(errors="utf-8").decode(errors='ignore', encoding="utf-8")
        temp_text = temp_text.replace('\t', '').replace('\n', '').replace('\r\n', '')
        temp_text = ' '.join(temp_text.split())
        text = text + temp_text

    return text

方法3:使用pdfminer3k读取pdf文件(不推荐)

from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal, LAParams
​
def parse_pdf(pdf_path):
    pdf_io = open(pdf_path, 'rb')
​
    pdf_parser = PDFParser(fp=pdf_io)
    pdf_doc = PDFDocument()
​
    pdf_parser.set_document(doc=pdf_doc)
    pdf_doc.set_parser(parser=pdf_parser)
​
    # 初始化数据
    pdf_doc.initialize()
​
    if not pdf_doc.is_extractable:
        print('The file is can not extract!')
        return
    else:
        # 设置管理器
        pdf_manager = PDFResourceManager()
        pdf_laparams = LAParams()
        pdf_device = PDFPageAggregator(rsrcmgr=pdf_manager, laparams=pdf_laparams)
        # 读取docx
        pdf_interpreter = PDFPageInterpreter(rsrcmgr=pdf_manager, device=pdf_device)
​
        text = ""
        for page in pdf_doc.get_pages():
            pdf_interpreter.process_page(page)
            layout = pdf_device.get_result()
​
            for x in layout:
                try:
                    if isinstance(x, LTTextBoxHorizontal):
                        temp_text = x.get_text()
                        # 清洗数据
                        temp_text = temp_text.encode(errors="utf-8").decode(errors='ignore', encoding="utf-8")
                        text = text + temp_text.replace('\t', '').replace('\n', '').replace('\r\n', '')
                except:
                    print(pdf_path + "  Failed")
​
        return text

5 python操作docx

使用python-docx读取docx文件

注意:doc此方法不适用,读取doc文件需要使用pypiwin32包

def parse_docx(docx_path):
    # 读取docx文件
    file_docx = docx.Document(docx_path)
    text = ""
    # 读取段落
    for paragraph in file_docx.paragraphs:
        temp_text = str(paragraph.text)
        temp_text = temp_text.encode(errors="utf-8").decode(errors='ignore', encoding="utf-8")
        temp_text = temp_text.replace('\t', '').replace('\n', '').replace('\r\n', '')
        temp_text = ' '.join(temp_text.split())

        # 删除空段落
        if temp_text != "":
            text = text + temp_text

    return text

6 处理特殊字符

import re
def remove_character(text):
    # 删除网络地址
    text = re.sub('[http|https]*://[a-zA-Z0-9.?/&=:]*', '', text)
    # 删除连续的两个"."
    text = re.sub("\.{2,}", "", text)
    # 保留中文、英文、数字和特殊字符
    text = re.sub("[^\u4e00-\u9fa5^^a-z^A-Z^0-9 .。,,??::\]\[<《>》]", "", text)
    return text
​
if __name__ == '__main__':
    text = "....................zhong过★、…【】↓▼▲◆●《》"
    print(remove_character(text))

7 doc转换为docx

需要安装pypiwin32包

from win32com import client

# 安装pypiwin32包
# pip install pypiwin32
def doc_to_docx(doc_path, docx_path):
    try:
        # 获取Word应用
        word = client.Dispatch("Word.Application")
        doc = word.Documents.Open(doc_path)
        # 另存为".docx"文件,参数12或16表示docx文件
        doc.SaveAs(docx_path, 16)
        doc.Close()
        word.Quit()
    except Exception as e:
        print(e)
        return -1

8 重命名文件名称

import os
import shutil

# dir_old为原数据目录,dir_new为重命名后数据目录
def rename_file(dir_old, dir_new):
    # 获取文件列表
    filename_list = os.listdir(dir_old)
    for i in range(len(filename_list)):
        # 获取文件名称
        file_name = filename_list[i]
        # 获取文件后缀
        file_suffix = os.path.splitext(file_name)[-1]
        # 复制文件,并重命名
        shutil.copy(os.path.join(dir_old, file_name), os.path.join(dir_new, "file_" + str(i) + file_suffix))

dir_old = r'E:\my_data'
dir_new = r'E:\my_data_new'
rename_file(dir_old, dir_new)

9 pdf转化为word

需要安装pdf2docx 

from pdf2docx import Converter

def pdf_to_word(pdf_path, docx_path):
    cv = Converter(pdf_path)
    cv.convert(docx_path, start=0, end=None)
    cv.close()

pdf_to_word("E:/test.pdf", "E:/111.docx")

10 pdf转化为img

"""
# 方法1使用python-office
# 安装python-office包
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-office -U

import office

# 一行代码,实现转换
# 参数说明:
# pdf_path = 你的PDF文件的地址
# out_dir = 转换后的图片存放地址,可以不填,默认是PDF的地址

office.pdf.pdf2imgs(
    pdf_path='E:/xi_data_special/file_pwd.pdf',
    out_dir='E:/xi_img'
)
"""

# 方法2使用pymupdf中的fitz
# 安装pymupdf包
# pip install pymupdf

import os
import fitz


def pdf_to_img(pdf_path, img_dir):
    doc_obj = fitz.open(pdf_path)

    for i in range(doc_obj.page_count):
        page = doc_obj.load_page(i)
        pixmap = page.get_pixmap()
        pixmap.save(os.path.join(img_dir, str(i)+".png"))


pdf_path = "E:/xi_data_special/file_pwd.pdf"
img_dir = "E:/xi_img"
pdf_to_img(pdf_path, img_dir)

Seattle-Hotels.csv 西雅图酒店简介 立即下载

相关推荐

西雅图酒店内容推荐系统:根据描述内容推荐相似酒店

西雅图酒店内容推荐系统:根据描述内容推荐相似酒店,Building a Content Based Recommender System for Hotels in Seattle。

酒店推荐系统案例

基于酒店文本描述来推荐相似酒店 import pandas as pd import numpy as np from nltk.corpus import stopwords from sklearn.metrics.pairwise import linear_kernel from sklearn.feature_extraction.text import CountVectorizer ...

微信号:RunsenLiu 2472

VASP能带计算避坑指南:从CHGCAR读取失败到成功解决的全过程

本文深度解析VASP能带计算中常见的“CHGCAR读取失败”报错,并提供从静态自洽到非自洽计算的全流程避坑指南。核心解决方案包括使用CONTCAR替代POSCAR、调整SYMPREC参数以处理对称性判定问题,并推荐利用vaspkit工具自动化生成输入文件,确保计算流程稳健高效。

weixin_29245767的博客 771

基于文本来推荐相似酒店

基于文本来推荐相似酒店

weixin_40623018的博客 3049

无线自组织网络基础知识

参考书籍:《无线自组织网络路由协议及应用》 目录第一章 绪论1.1 无线自组织网络概述1.1.1 无线自组织网络的定义及分类1.1.2无线自组织网络的主要特点1.1.3无线自组织网络的应用与发展1.无线自组织网络的应用2.无线自组织网络的起源和发展1.2典型的无线自组织网络1.2.1移动Ad Hoc网络1、移动Ad Hoc网络的定义2.移动AdHoc网络的特点3.移动Ad Hoc网络的应用1.2....

逸凌Time 2万+

ArduPilot + Gazebo + Mavros + QGC + 遥控器:从仿真到实机的自主轨迹控制实践

本文详细介绍了基于ArduPilot、Gazebo、Mavros和QGC的无人机自主轨迹控制全流程实践。从仿真环境搭建、多终端协同配置,到遥控器集成与自主圆形轨迹算法实现,提供了完整的代码示例和实机迁移要点,帮助开发者快速掌握无人机自主控制技术。

corn8的博客 940

Python文件操作详解

一:打开和关闭文件①:open 函数        你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。语法:file object = open(file_name [, access_mode][, buffering])   各个参数的细节如下:      file_name:是一个包含了你要访问的文件名的字符串值。      ac...

JOKER___Z的博客 2万+

单细胞分析避坑指南:SCTransform和Harmony参数设置详解

本文深入解析了单细胞分析中SCTransform标准化与Harmony批次校正的关键参数设置。针对10x Genomics等数据,详细探讨了如何通过调整`vars.to.regress`、`theta`等核心参数,在有效去除技术噪音的同时,避免过度校正以保留关键的生物学差异,从而提升分析结果的可靠性与可解释性。

weixin_29053073的博客 608

python文件操作

python文件操作1.文件操作的作用2.文件的基本操作2.1文件的操作步骤2.1.1打开文件3.文件备份4.文件和文件夹操作 1.文件操作的作用 ⽂件操作的作⽤就是把⼀些内容(数据)存储存放起来,可以让程序下⼀次执⾏的时候直接使⽤,⽽不必重新制作⼀份,省时省⼒ 2.文件的基本操作 2.1文件的操作步骤 打开⽂件 读写等操作 关闭⽂件 注意:可以只打开和关闭⽂件,不进⾏任何读写操作 2.1.1打开文件 在python,使⽤open函数,可以打开⼀个已经存在的⽂件,或者创建⼀个新⽂件 语法:open(na

烽火戏诸侯 5891

UE4/5编译报错MSB3073终极解决指南:从路径检查到MSVC版本降级

本文针对UE4/5开发中常见的MSB3073编译报错,提供了一套从根源到实战的终极解决指南。文章系统性地讲解了错误成因,并分层次指导排查路径字符、环境变量、MSVC版本兼容性、权限冲突等核心问题,重点介绍了通过降级MSVC编译器版本等关键操作来彻底解决此编译难题。

rl6adventurer的博客 1435

创建 Qt Quick 项目

来看看如何使用 Qt Creator 创建 Qt Quick 项目!

青春不老,奋斗不止! 1万+

python对文件的操作

基础 1、文件操作3要素 python操作文件至少满足3个条件 文件路径 文件打开方式(读、写、追加等) 编码方式 操作系统默认编码 编码 windows gbk Linux utf-8 mac utf-8 文件操作模式 说明 原理:读取文件是将文件一次性全部加载到内存当中,如果文件过大,内存容不下,导致文件读取失败,此时可以使用for循环读取文件 2、读文件 1、相对/绝对路径打开读取 以a.txt中的床前明月光测试

浅水鲤鱼的博客 5537

【DaVinci Developer专题】-23-IDT高阶应用:结构体类型的数组

共8页 目录 1 创建一个Record IDT 2 创建一个Array IDT 3 创建一个S/R Port Interface 4 创建一个Constant 5 导入CFG生成代码的总结 6 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键字: 缩略语/术语 含义 DEV DaVinci Developer .

「汽车电子助手」的博客 1669

Python文件操作

Python文件操作

OneFine的技术博客 2150

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

文件的操作—Python

本文摘要: Python文件操作指南:从基础读写到高级应用 文件路径处理:区分相对/绝对路径,使用os.path.exists检查文件存在性 文件读写操作: 文本文件读写(r/w/a模式) 二进制文件处理(rb/wb模式) 提供完整文件打开模式对照表 高级文件操作: read/readline/readlines方法 seek/tell光标控制 上下文管理器(with语句) 特殊文件格式处理: CSV文件读写(csv模块) INI配置文件操作(configparser) Excel文件处理等

weixin_72163837的博客 1040

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python的文件操作

1.文件的介绍 例如电脑上保存的.txt,.png,.file 等都是文件 文件的作用:使用文件的目的:保存数据存放在磁盘 把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力 2.文件的打开与关闭 打开文件,或者新建立一个文件 读/写数据 关闭文件 2.1:打开文件 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件open(文件名,访 问模式) 格式: f = open(‘文件’, 'w')或者f = open('文件'

ljjyss的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

如何使用Python对文件进行操作

相信有不少同学,在学习Python时,更多的是想学习如何使用Python来进行对文件的操作,当然在Python编程中,文件操作是一个非常重要的部分。无论是读取数据、写入数据,还是处理日志,文件操作都是不可或缺的。接下来我将详细介绍Python中的文件操作方法,包括打开文件、读取文件、写入文件以及关闭文件等。Python中的文件操作非常强大且灵活。文件操作在Python中就像是一场精彩的数据探险。一键打开文件,你就像探险家一样,踏入了一个充满未知的数据世界。逐行读取文件内容,仿佛是在解开一个个神秘的谜题。

protects的博客 1399

Python中对于文件的操作

①打开文件②读写文件③关闭文件。

xiyue19167的博客 736

python-文件操作

os.scandir() 用于获取指定目录中的条目,并返回一个包含 DirEntry 对象的迭代器。每个 DirEntry 对象提供了文件或目录的基本信息,如名称、路径、文件类型等。与 os.listdir() 相比,os.scandir() 提供了更高效的文件遍历,能够直接访问文件类型信息,而不需要额外的系统调用。3.7 文件拷贝-

qq_27833723的博客 2498

python中对文件的操作

目标 文件操作的作用 文件的基本操作 打开 读写 关闭 文件备份 文件和文件夹的操作 一、文件操作的作用 文件操作的作用就是把一些内容(数据)存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。 二、文件的基本操作 2.1 文件操作步骤 打开文件 读写等操作 关闭文件 也可以只打开、关闭文件。 2.1.1 打开 open()函数,可以打开一个已经存在的文

qq_52262831的博客 1553

Python之文件相关操作

介绍python文件的相关操作

m0_55025444的博客 1286

下列不是python对文件的操作方法的是_Python 文件操作

文件操作三部曲:打开 -> 操作 -> 关闭。一. 文件操作, 常用的几种模式:如果打开文件,没有指定操作方式,默认是读取;对于r/r+,如果文件不存在会报错,使用时需要保证文件存在;对于w/w+,如果使用它们,每次运行文件内容都会被覆盖;对a/a+,这种方式会追加内容,因此指针在结尾。对于rb, wb, ab 是二进制的方式操作,可以应用于图片、视频。* 注意:当文件操作方式是a 或...

weixin_39943202的博客 5551

python文件操作实验总结_python文件操作总结

原文地址: https://www.cnblogs.com/xinchrome/p/5011304.html文件操作对编程语言的重要性不用多说,如果数据不能持久保存,信息技术也就失去了意义。按照本人经验,IO也是蛮头疼的一件事,因为不会用得太多,所以总是记不住API,每次都要重新google就会打断思路,还不一定每次都快速得到正确的文章。本文内容包括:文件的读写操作文件的各种系统操作存储对象遍历...

weixin_39762001的博客 2000
上一篇: Ubuntu中使用python3.8
下一篇: 安装和使用nltk
MasonYyp
博客等级 码龄9年 301粉丝 297原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值