用Python来创建7种不同的文件格式

news2024/10/6 1:40:42

用Python来创建7种不同的文件格式

  • 一、用Python来创建7种不同的文件格式
    • 1.1、文本文件
    • 1.2、CSV文件
    • 1.3、Excel文件
    • 1.4、压缩文件
    • 1.5、XML文件
    • 1.6、JSON文件
    • 1.7、PDF文件

一、用Python来创建7种不同的文件格式

1.1、文本文件

  • 写入
file_name = "my_text_file.txt"

# 将内容写入至文件中
texts = "Hi, How do you doing?"

# 打开文件,编辑模式
with open(file_name, "w") as file:
    file.write(texts)

# 打印创建文本文件成功的信息
print(f"{file_name} 创建成功!")
#结果
my_text_file.txt 创建成功!
  • 读取
# 用Python读取文本文件

# 文件的名称
file_name = "my_text_file.txt"

# 打开文件,读取当中的内容
with open(file_name, "r") as file:
    texts = file.read()

# 打印文本文件中的内容
print(texts)
#结果
Hi, How do you doing?

1.2、CSV文件

  • 写入
import csv
# CSV文件的名称
file_name = "my_csv_file.csv"

# 写入的内容
content = [
    ["Number", "Name", "Company"],
    [1, "Elon Musk", "Tesla"],
    [2, "Bill Gates", "Microsoft"],
    [3, "Jeff Bezos", "Amazon"],
    [4, "Steve Jobs", "Apple"]
]

# 打开文件并且开启编辑的模式
with open(file_name, "w",newline='') as file:
 # 创建编辑的工具
    writer = csv.writer(file)
    writer.writerows(content)

# 打印出文件创建成功的消息
print(f"{file_name} 创建成功!")
#结果
my_csv_file.csv 创建成功!
  • 读取
import pandas as pd
data=pd.read_csv(r'./my_csv_file.csv')
data

在这里插入图片描述

1.3、Excel文件

  • 写入
# 导入模块
from openpyxl import Workbook

# Excel文件的文件名
file_name = "my_excel_file.xlsx"

# 创建文件的工具
workbook = Workbook()
sheet_1 = workbook.active

# 单个元素写入
sheet_1["A1"] = "S. no"
sheet_1["B1"] = "Name"
sheet_1["C1"] = "Company"

# 第二条记录
sheet_1["A2"] = "1"
sheet_1["B2"] = "Elon Musk"
sheet_1["C2"] = "Tesla"

# 第三条记录
sheet_1["A3"] = "2"
sheet_1["B3"] = "Bill Gates"
sheet_1["C3"] = "Microsoft"

# 第四条记录
sheet_1["A4"] = "3"
sheet_1["B4"] = "Jeff Bezos"
sheet_1["C4"] = "Amazon"

# 保存文件
workbook.save(file_name)

在这里插入图片描述

# 一系列的数据内容
file_name = "my_excel_file1.xlsx"

# 创建文件的工具
workbook = Workbook()
sheet_1 = workbook.active
records = [
    ["Number", "Name", "Company"],
    [1, "Elon Musk", "Tesla"],
    [2, "Bill Gates", "Microsoft"],
    [3, "Jeff Bezos", "Amazon"]
]

# append()方法填充内容
for record in records:
    sheet_1.append(record)

# 保存文件
workbook.save(file_name)

在这里插入图片描述

  • 读取
# 导入模块
import openpyxl

# 文件名的名称
file_name = "my_excel_file.xlsx"

# 加载Excel文件
workbook = openpyxl.load_workbook(file_name)
sheet_1 = workbook.active

# 开始读取的行的位置
min_row = sheet_1.min_row
# 读取行的位置读取到哪儿
max_row = sheet_1.max_row

# 开始读取单元格的位置
min_col = sheet_1.min_column
# 单元格读取的最终的位置
max_col = sheet_1.max_column

for record in sheet_1.iter_rows(min_row, max_row, min_col, max_col):
    for cell in record:
        print(cell.value, end=" ")
    print()

在这里插入图片描述

1.4、压缩文件

  • 写入
# 导入模块
import tarfile

# 打开压缩文件,编辑模式
with tarfile.open("my_tar_file.tar", "w") as file:
    # 添加txt文本文件,并且指定文件的名称
    file.add("my_excel_file.xlsx") #必须是已经存在的文件,否则会报错“FileNotFoundError: [WinError 2] 系统找不到指定的文件。”
    file.add("my_excel_file1.xlsx")

# 打印创建成功的消息
print("压缩包创建成功!")
#结果
压缩包创建成功!
  • 读取
# 导入模块
import tarfile

# 解压缩文件的名称
filename = "my_tar_file.tar"

# 查看文件是否是压缩文件的格式
if tarfile.is_tarfile(filename):
    
    # 打开文件
    with tarfile.open(filename, "r") as file:
        # 解压缩全部的文件
        file.extractall()
        
    # 打印解压缩成功的消息
    print(f"{filename} 解压缩成功!")
#结果
my_tar_file.tar 解压缩成功!
  • 那么要是我们想要打印出来解压缩文件当中的文件名,代码也非常的简单,如下所示
# 导入模块
import tarfile

# 解压缩包的名称
filename = "my_tar_file.tar"

# 检查文件是否是压缩包的格式
if tarfile.is_tarfile(filename):
    
    # 打开文件
    with tarfile.open(filename, "r") as file:
        # 解压缩文件当中的文件名称
        files = file.getnames()
        # 遍历循环文件名
        for file in files:
            print(file)
#结果
my_excel_file.xlsx
my_excel_file1.xlsx
  • 从压缩包中,解压缩出指定的文本文件,代码如下
# 导入模块
import tarfile

# 解压缩包的名称
filename = "my_tar_file.tar"

# 检查文件是否是压缩包的格式
if tarfile.is_tarfile(filename):
    
    # 打开文件
    with tarfile.open(filename, "r") as file:
        # 获取解压缩包中文件的名称
        files = file.getnames()
        
        # 输入你想要解压缩的文件名
        fname_to_extract = "my_excel_file.xlsx"
        # 检查文本文件是否存在
        if fname_to_extract in files:
            # 解压缩指定的文件出来
            file.extract(fname_to_extract)   
        
    # 打印成功
    print("File extracted successfully")
#结果
File extracted successfully

1.5、XML文件

  • 写入
  • 在Python当中创建XML文件就需要用到xml模块,我们这里定义一个函数来创建XML文件,代码如下
# 导入模块
import xml.etree.ElementTree as xml

# 函数方法来创建XML文件
def create_XML_file(filename):
    # Root element -> Mobile_shop
    root = xml.Element("Mobile_shop")
    
    # Root element -> mobile_names
    mobile = xml.Element("mobile_names")
    root.append(mobile)
    
    # Sub Elements -> mobile names
    mobile_1 = xml.SubElement(mobile, "mobile_1")
    mobile_1.text = "Vivo"
    
    mobile_2 = xml.SubElement(mobile, "mobile_2")
    mobile_2.text = "Oppo"
    
    mobile_3 = xml.SubElement(mobile, "mobile_3")
    mobile_3.text = "Realme"
    
    mobile_4 = xml.SubElement(mobile, "mobile_4")
    mobile_4.text = "Google Pixel"
    
    mobile_5 = xml.SubElement(mobile, "mobile_5")
    mobile_5.text = "IPhone"
    
    mobile_6 = xml.SubElement(mobile, "mobile_6")
    mobile_6.text = "Sony"
    
    tree = xml.ElementTree(root)
    
    # 将内容写入至XML文件中
    with open(filename, "wb") as file:
        tree.write(file)
        
    # 打印创建成功的信息
    print("创建成功!")
    
# 调用上述定义的函数
create_XML_file("my_xml_file.xml")
#结果
"""
<Mobile_shop><mobile_names><mobile_1>Vivo</mobile_1><mobile_2>Oppo</mobile_2><mobile_3>Realme</mobile_3><mobile_4>Google Pixel</mobile_4><mobile_5>Iphone</mobile_5><mobile_6>Sony</mobile_6></mobile_names></Mobile_shop>
"""

1.6、JSON文件

  • 写入
  • 创建JSON文件的模块在Python当中也叫json,那么往JSON文件中写入内容这里需要用到dump()方法,代码如下
# 导入模块
import json

# 键值对来写入至JSON文件中
data = {
    "name": "junxin",
    "profession": "Blogging",
    "programming_language": "Python",
}

# 创建文件,并且以编辑的模式打开
with open("my_json_file.json", "w") as file:
    # 这里调用到dump()方法来写入内容
    json.dump(data, file)
    
# 打印创建成功的信息
print("创建成功!")
  • 读取
  • 而当我们想要来查看JSON文件当中的内容,这里就需要调用load()方法,代码如下
# 导入模块
import json

# 打开文件
with open("my_json_file.json", "r") as file:
    # 调用load()方法
    content = json.load(file)

# 打印内容
print(content)
#结果
{'name': 'Gowtham', 'profession': 'Blogging', 'programming_lang_known': 'Python'}

1.7、PDF文件

  • 写入
# 导入模块
import fpdf
# 创建实例
pdf = fpdf.FPDF()
# 添加一页内容
pdf.add_page()
# 设置字体的格式
pdf.set_font("arial")
# 设置字体的大小
pdf.set_font_size(18)
# 写入内容
pdf.cell(w=0, txt="Hello World!!", ln=0)
# 保存内容
pdf.output("my_pdf.pdf")

在这里插入图片描述
参考:https://blog.csdn.net/m0_59596937/article/details/128348430

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/157353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序——WXML模板语法-条件渲染,列表渲染

一.条件渲染1.wx:if在小程序中&#xff0c;使用wx:if"{{condition}}"来判断是否需要渲染该代码块&#xff1a;也可以用wx:elif和wx:else来添加else判断&#xff1a;实例如下&#xff1a;1.在js文件中定义一个typedata:{type:1 },此时虚拟页面上显示的就是&#xff1a…

二十四、Kubernetes中Deployment(Deploy)控制器详解

1、概述 在kubernetes中&#xff0c;有很多类型的pod控制器&#xff0c;每种都有自己的适合的场景&#xff0c;常见的有下面这些&#xff1a; ReplicationController&#xff1a;比较原始的pod控制器&#xff0c;已经被废弃&#xff0c;由ReplicaSet替代 ReplicaSet&#xff…

kafka/bin/kafka-run-class.sh: line 342: exec: java: not found

本来jps看了下&#xff0c;kafka和zookeeper都起来了&#xff0c;手痒&#xff0c;非要换宝塔的进程守护管理器&#xff0c;选目录为/home/kafka&#xff0c;命令为/home/kafka/bin/zookeeper-server-start.sh /home/kafka/config/zookeeper.properties 就在日志里看到 kafk…

马蹄集 整除的总数

整除的总数 难度&#xff1a;白银 时间限制&#xff1a;1秒 巴占用内存&#xff1a;64M 输入正整数N和M,其中N<M。求区间[N,M]中可被K整除的总数。 格式 输入格式&#xff1a;输入正整数N,M和K,空格分隔。 输出格式&#xff1a;输出整型 #include <bits/stdc.h&g…

RabbitMQ(二)使用Docker安装

目录1. 拉取 RabbitMQ 镜像2.启动 RabbitMQ 容器3.查看 RabbitMQ 是否启动官网地址&#xff1a;https://www.rabbitmq.com/ 下载地址&#xff1a;https://www.rabbitmq.com/download.html 这篇文章为了方便初学者入门&#xff0c;在 linux 环境下用 docker 直接安装 RabbitMQ&…

【JavaSE】String相关知识

String \ StringBuilder \ StringBufferString的值是不可变的&#xff0c;使用“”或者“”的方法尝试改变String的值并不是在原本的基础上修改&#xff0c;而是赋值给了新的字符串常量引用StringBuffer是线程安全的&#xff0c;使用的是无脑加synchronized的方法这三者的运行速…

10分钟上手一款好用的服务器节点监测工具(Server 酱)

Server 酱简介 Server酱&#xff0c;英文名「ServerChan」&#xff0c;是一款「手机」和「服务器」、「智能设备」之间的通信软件。说人话&#xff1f;就是从服务器、路由器等设备上推消息到手机的工具。开通并使用上它&#xff0c;只需要一分钟&#xff1a; 微信扫码登入设置…

Mysql可视化软件-Navicat和SQLyog

Navicat 可以将mysql可视化的一个软件 可以避免一直在命令行里面敲代码&#xff0c;很难绷 连接 密码写一个你能记住的&#xff0c;不然打不开连接 对应的IP可以是localhost或者127.0.0.1 都是本机 端口号就我们在my.ini写的那个 然后进行我们上面说的操作-新建一个数据库先…

Linux操作系统常用命令

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;Java案例分…

【uniapp】记录地址管理页面

uniapp中的地址管理页面 <template><view class"container"><view class"oldaddress" v-for"(item,index) in cardInfo" :key"index"><view class"topview"><view class"name">{{i…

线缆行业单绞机控制算法(详细图解+代码)

在了解单绞机之前需要大家对收放卷以及排线控制有一定的了解,不清楚的可以参看下面几篇博客,这里不再赘述,受水平和能力所限,文中难免出现错误和不足之处,诚恳的欢迎大家批评和指正。 收放卷行业开环闭环控制算法 PLC张力控制(开环闭环算法分析)_RXXW_Dor的博客-CSDN博…

Win10专业版系统Docker安装、配置和使用详细教程

一、win10专业版系统首先需要开启硬件虚拟化及Hyper-V功能&#xff0c;才能进行Docker for Windows软件安装。 如何开启硬件虚拟化&#xff0c;自行百度。可在任务栏中查看虚拟化是否开启。 win10系统&#xff0c;打开控制面板-“应用”-“程序和功能”&#xff0c;开启Hyper-V…

webpack 的基本使用

webpack 的基本使用配置 npm 镜像源创建列表隔行变色案例新建空白项目目录&#xff0c;初始化 package.json 配置文件通过 npm 安装 jquery新建 src 源代码目录index.htmlindex.js检查网页效果webpack 的安装webpack 的安装dependencies 与 devDependencies参数 -S 及 --save参…

【Linux工具】-yum/gdb

yum/gdb一&#xff0c;yum1&#xff0c;简介2&#xff0c;软件下载3&#xff0c;软件删除4&#xff0c;yum源与扩展yum源5&#xff0c;常见选项二&#xff0c;gdb1&#xff0c;简介2&#xff0c;gdb相关指令一&#xff0c;yum 1&#xff0c;简介 在Linux下&#xff0c;下载软…

中国芯片迎难而上,4纳米芯片量产,美媒:美国或肠子都悔青了

日前美国媒体《财富》杂志发表相关文章&#xff0c;认为对中国的芯片限制对美国是弊大于利&#xff0c;倒逼中国芯片加快芯片产业发展进程&#xff0c;而美国芯片却蒙受了太大的损失&#xff0c;与美国方面打擂台。美媒发表这篇文章之际&#xff0c;恰恰是中国芯片企业宣布近期…

TikTok不可思议的崛起

武汉瑞卡迪电子商务有限公司&#xff1a;《华尔街日报》网站11月5日发表题为《TikTok不可思议的崛起》的文章&#xff0c;全文摘编如下&#xff1a; 在短短五年里&#xff0c;TikTok已经爆发成为一种流行文化现象以及一个地缘政治闪爆点。它是全世界最热门的应用&#xff0c;被…

Vue纯前端:榜单管理系统

文章目录:一、主要功能&#xff1a;二、实现效果&#xff1a;1.主页:2.注册&#xff1a;3.登录&#xff1a;4.列表界面&#xff1a;5.添加应用界面&#xff1a;6.修改应用界面&#xff1a;7.模糊查询&#xff1a;三、整体架构&#xff1a;四、配置文件说明&#xff1a;五、功能…

icp备案号怎么申请?icp备案号哪里查询

ICP备案就是对网站的开办者信息的备案登记&#xff0c;以确保网站开办者的真实合法性。购买域名后&#xff0c;需要通过ICP备案才能开通域名解析服务。未通过ICP备案的网站&#xff0c;会有被查处关停的风险&#xff0c;备案的目的就是为了防止在网上从事非法的网站经营活动&am…

nexus可以访问但是maven无法拉取jar的一种答案

现象&#xff1a; 错误日志&#xff1a; Could not transfer metadata com.*.*:*-common-lib:2.0.0-SNAPSHOT/maven-metadata.xml from/to nexus-snapshot (https://mvn.*.*.com.cn/repository/snapshots/): sun.security.validator.ValidatorException: PKIX path building f…

【操作系统实验/Golang】实验1:进程调度(FCFS, SJF, RR)

1 实验问题描述设计程序模拟进程的先来先服务FCFS、短作业优先SJF和时间片RR算法的调度过程。假设有n个进程分别在T1, … ,Tn时刻到达系统&#xff0c;它们需要的服务时间分别为S1, … ,Sn。如果选择RR算法&#xff0c;还需要指定时间片大小q。分别采用三种进程调度算法进行调度…