Python知识点——文件和数据格式化

news2024/11/23 3:28:46

目录

文件的打开

文件的打开模式

文件的路径

文件的关闭

文件内容读取

文件的读取

文件的写入 

例题


文件的打开

文件的打开模式
文件打开模式描述
‘r’只读模式,默认值,如果文件不存在,返回FileNotFoundError
'w'覆盖写模式,文件不存在则创建,存在则完全覆盖
'x'创建写模式,文件不存在则创建,存在则返回FileExistsError
‘a’追加写模式,文件不存在则创建,存在则在文件最后追加内容
‘b’二进制文件模式
‘t’文本文件模式,默认值
‘+’

与r/w/a一同使用,在原功能基础上增加同时读写功能

文件的路径

 <变量名>  = open(<文件名>,<打开模式>)

注:与源文件同目录,可省略路径

“D:/PYE/f.txt”        “./PYE/f.txt”

”D:\\YE\\f.txt“        "f.txt"

文件打开示例 

f = open("f.txt")                            文本形式、只读模式、默认值
f = open("f.txt","rt")                      文本形式、只读模式、同默认值
f = open("f.txt","w")                      文本形式、覆盖写模式
f = open("f.txt","a+")                  文本形式、追加写模式+ 读文件
f = open("f.txt","x")                    文本形式、创建写模式
f= open("f.txt","b")                       二进制形式、只读模式
f = open("f.txt","wb")                 二进制形式、覆盖写模式

文件的关闭

<变量名>.close()

#文本形式打开文件

tf = open("f.txt","rt")

print(tf.readline())

tf.close()

#二进制形式打开文件
bf = open("f.txt","rb")

print(bf.readline())

bf.close()


 

文件内容读取

操作方法描述
<f>.read(size=-1)

读入全部内容,如果加入参数size,表示读入前size长度的内容

>>>s = f.read(2)

中国

<f>.readline(size=-1)

读入一行内容,如果加入参数size,表示读入改行前size长度的内容

>>>s = f.readline()

中国是一个伟大的国家!

<f>.readlines(hint=-1)

读入文件所有行,以每行为元素形成列表如果给出hint,读入文件内对应字节数hint的当前行为止

>>>s = f.readlines()
['中国是一个伟大的国家! ]

文件的读取

方法一:一次性读入

fname = input("请输入要打开的文件名称:")

fo = open(fname,"r")

txt = fo.read()        #对全文txt进行处理
fo.close()

方法二:按数量读入

fname = input("请输入要打开的文件名称:")

fo = open(fname,"r")

txt = fo.read(2)

while txt != ” “:
        #对txt进行处理
        txt = fo.read(2)
fo.close() 

方法三: 一次读入,按行处理

fname = input("请输入要打开的文件名称:")

fo = open(fname,"r")

for line in fo.readlines():

        print(line)
fo.close()

方法四:分行读入,逐行处理

fname = input("请输入要打开的文件名称:")

fo = open(fname,"r")

for line in fo:
        print(line)
fo.close()

文件的写入 

操作方法描述
<f>.write(s)

 向文件写入一个字符串或字节流

  >>>f.write("中国是一个伟大的国家!")

<f>.writelines(lines)

 将一个元素全为字符串的列表写入文件

  >>>ls = ["中国", "法国", "美国"]

  >>>f.writelines(ls)

 中国法国美国

<f>.seek(offset[,whence])

改变当前文件操作指针的位置,offset开始的偏移量,whence可选,默认为0,含义如下:

0-文件开头;

1- 当前位置;

2- 文件结尾

>>>f.seek(0)        #回到文件开头

例题:写入一个字符串列表的两种方法

fo = open("output .txt","w+“)

ls = ["中国","法国","美国"]

fo.writelines(ls)
for line in fo:
print(line)

fo.close()

#没有任何输出

fo = open("output .txt","w+")

ls = ["中国","法国","美国"]

fo.writelines(ls)

fo.seek(0)
for line in fo:

        print(line)

fo.close()

#输出中国法国美国

例题

自动轨迹绘制

有如下data.txt文件

链接:https://pan.baidu.com/s/1Rt5PD5OPwQpyzJwOoA35Yg 
提取码:ghoc

以第一行为例:300 :行进距离        0:转向判断(0:左转,1:右转)        144:转向角度  

1,0,0:RGB三个通道颜色

#AutoTraceDraw.py
import turtle as t
t.title('自动轨迹绘制')
t.setup(800, 600, 0, 0)
t.pencolor("red")
t.pensize(5)
#数据读取
datals = []
f = open("data.txt")
for line in f:
    line = line.replace("\n","")
    datals.append(list(map(eval, line.split(","))))
f.close()
#自动绘制
for i in range(len(datals)):
    t.pencolor(datals[i][3],datals[i][4],datals[i][5])
    t.fd(datals[i][0])
    if datals[i][1]:
        t.right(datals[i][2])
    else:
        t.left(datals[i][2])

能够绘制以下图形,大家可以复制粘贴看看绘制流程:

给出相应星座,输出相应星座日期:

链接:https://pan.baidu.com/s/1Y-cGAmThpFfqpygCs6zd0A 
提取码:xtez

import pandas as pd

with open('D:\\SunSign.csv',encoding='UTF-8') as txt:
    f=txt.read()
names=[]
datas=[]

for line in f.split("\n"):
    line=line.replace("\n","")
    datas.append(line.split(","))
    names.append(line.split(",")[0])
    txt.close()

print("输入星座:")
strList=[]
while(True):
    str=input()
    if str=='exit':
        break
    else:
        strList.append(str)

for str in strList:
    if str in names:
        print("{}的生日位于{}-{}之间".format(chr(eval(datas[names.index(str)][3])), datas[names.index(str)][1],datas[names.index(str)][2]))
    else:
        print("输入星座名称有误!")

输入:

输出:

若输入错误,得到结果为:

构造词云:

使用词云之前要用cmd命令行下载wordcloud

txt文件如下:

链接:https://pan.baidu.com/s/1y6By4u6_3nmy7PBC6POxeQ 
提取码:jo9p 

代码如下: 

#GovRptWordCloudv1.py
import jieba
import wordcloud
f = open("D:\\新时代中国特色社会主义.txt", "r", encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t) #用 jieba 库对文件内容进行中文分词,将分词结果列表赋给变量 ls
txt = " ".join(ls)#将分词结果列表 ls 中的词语用空格连接成一个字符串,并赋给变量 txt
w = wordcloud.WordCloud(   font_path = "msyh.ttc",\
    width = 1000, height = 700, background_color = "white", \
    )
w.generate(txt)#根据文本内容生成词云图像数据。
w.to_file("D:\\grwordcloud.png")#将生成的词云图像数据保存为 "grwordcloud.png" 文件

代码结果如下: 

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

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

相关文章

xray:漏洞扫描利器

简介 长亭科技旗下的一款网络安全漏洞扫描工具&#xff0c;用于检测和评估web应用程序的安全性。具有一下特点&#xff1a;检测速读快、检查范围广、代码质量高、高级可定制以及安全无危害。属于不开源的项目&#xff0c;用户直接下载xray的可执行文件&#xff0c;即可运行该工…

基于STM32的烟雾传感器

1.说到烟雾传感器&#xff0c;就有必要了解一下ADC的工作原理&#xff0c;Analog-to-Digital Converter&#xff0c;指模拟/数字转换器 。 2. 选择ADC 3.main函数 uint32_t smoke_value 0; while (1){HAL_ADC_Start(&hadc1);//启动ADC1转换HAL_ADC_PollForConversion(&am…

Linux防火墙入门:学会使用firewalld和iptables

1 防火墙 1.1 防火墙介绍 防火墙就是过滤的表格&#xff0c;被记录在表格中的信息&#xff0c;才允许通过访问。 1.2 两种火墙策略 iptables dnf install iptables-services -y systemctl disable --now firewalld systemctl mask firewalld systemctl enable --now ip…

BP神经网络的数据分类——语音特征信号分类

大家好&#xff0c;我是带我去滑雪&#xff01; BP神经网络&#xff0c;也称为反向传播神经网络&#xff0c;是一种常用于分类和回归任务的人工神经网络&#xff08;ANN&#xff09;类型。它是一种前馈神经网络&#xff0c;通常包括输入层、一个或多个隐藏层和输出层。BP神经网…

Go 面向对象,多态

面向对象 工程结构 新建一个oop.go package _oop // Package _oop 引用名称import ("fmt""strconv" )// GIRL 常量 const (// GIRL 自增GIRL Gender iotaFIRSTSECONDTHIRD )type Gender uint8 // 无符号的8位整数类型// User 结构体 type User struct…

pyinstaller 打包 paddleocr

一、场景 我们在使用pyinstaller打包完以后&#xff0c;在执行时会出现一些第三方库找不到&#xff0c;尤其是paddleocr库二、解决方法 在打包paddleocr的时候&#xff0c;他的一些模块不会跟着一起打包&#xff0c;我们要使用已下方法来进行打包处理一般情况下打包 pyinsta…

被王牌对王牌种草闺蜜机?来看看当贝PadGO

不少朋友都很喜欢热播综艺《王牌对王牌》,细心的朋友又在观看综艺的过程中被种草了可以移动的电视屏幕——闺蜜机。 目前国产闺蜜机比较热门的品牌是当贝PadGO和小度添添闺蜜机。个人在使用体验后更偏向当贝PadGO闺蜜机,因为从配置性能和系统功能当贝PadGO都更胜一筹。 1、4K画…

K8S知识点(六)

&#xff08;1&#xff09;资源管理方式1 其他参数 其他参数以json格式显示pod信息 以yaml显示pod信息&#xff1a; 用describe描述容器的详细信息&#xff1a;包括ip啊&#xff0c;镜像啊&#xff0c;端口啊&#xff0c;容器启动经历的历程 创建命名空间Pod&#xff1a; 查询…

排序算法之-冒泡

顺序排序算法原理 从头开始遍历未排序数列&#xff0c;遍历时比较相邻的两个元素&#xff0c;前面的大于后面的&#xff0c;则双方交换位置&#xff0c;一直比较到末尾&#xff0c;这样最大的元素会出现在末尾&#xff0c;接着再依次从头开始遍历剩余未排序的元素&#xff0c;…

upload-labs-1

文章目录 Pass-01 Pass-01 先上传一个正常的图片&#xff0c;查看返回结果&#xff0c;结果中带有文件上传路径&#xff0c;可以进行利用&#xff1a; 上传一个恶意的webshell&#xff0c;里面写入一句话木马&#xff1a; <?php eval($_POST[cmd]); echo "hello&quo…

Google警告黑客如何滥用日历服务作为隐蔽的C2信道

导语 最近&#xff0c;谷歌发布了一份关于黑客如何滥用日历服务作为隐蔽的C2信道的警告。这种新型攻击方式利用了谷歌日历作为C2基础设施&#xff0c;给安全防御带来了新的挑战。本文将介绍这种攻击方式的细节&#xff0c;以及如何防范这一威胁。 Google Calendar RAT&#xff…

三维虚拟沙盘数字全景沙盘M3DGIS系统开发教程第18课

三维虚拟沙盘数字全景沙盘M3DGIS系统开发教程第18课 上一节我们实现了模型的移动控制。这次我们来实现模型的材质控制&#xff0c;首先我们找一个模型。在3dmax中如下&#xff1a; 可以看到这个模型很复杂。分成了很多层。我们先不管它。导入SDK后如下图&#xff1a; 有贴图还…

IP代理如何选择?4大误区你别踩!

近年来&#xff0c;我国互联网商业保持持续发展的状态大环境的优化&#xff0c;大大小小的企业都想乘胜追击&#xff0c;大展宏图&#xff0c;积极推动各项数据业务的进程。 而对于跨境业务来说&#xff0c;代理IP是不可或缺的重要工具之一&#xff0c;市面上代理IP类型众多&a…

React动态生成二维码和毫米(mm)单位转像素(px)单位

一、使用qrcode.react生成二维码&#xff0c;qrcode.react - npm 很简单&#xff0c;安装依赖包&#xff0c;然后引用就行了 npm install qrcode.react或者 yarn add qrcode.react直接上写好的代码 import React, {useEffect, useState} from react; import QRCode from qr…

MySQL中的datetime和timestamp有什么区别

相同点: 存储格式相同 datetime和timestamp两者的时间格式都是YYYY-MM-DD HH:MM:SS 不同点: 存储范围不同. datetime的范围是1000-01-01到9999-12-31. 而timestamp是从1970-01-01到2038-01-19, 即后者的时间范围很小. 与时区关系. datetime是存储服务器当前的时区. 而timesta…

leetcode:2278. 字母在字符串中的百分比(python3解法)

难度&#xff1a;简单 给你一个字符串 s 和一个字符 letter &#xff0c;返回在 s 中等于 letter 字符所占的 百分比 &#xff0c;向下取整到最接近的百分比。 示例 1&#xff1a; 输入&#xff1a;s "foobar", letter "o" 输出&#xff1a;33 解释&…

解决ntfs-3g-mount: mount failed硬盘无法挂载的问题

操作系统&#xff1a;ubuntu 20.04 遇到的问题&#xff1a;开机后挂载usb外接硬盘失败&#xff08;外接硬盘盒&#xff09;&#xff0c;报错&#xff1a;ntfs-3g-mount: mount failed: Device or resource busy 问题原因&#xff1a;openwrt容器&#xff08;--restart always&a…

无人机航迹规划:小龙虾优化算法COA求解无人机路径规划MATLAB(可以修改起始点,地图可自动生成)

一、小龙虾优化算法COA 小龙虾优化算法&#xff08;Crayfsh optimization algorithm&#xff0c;COA&#xff09;由Jia Heming 等人于2023年提出&#xff0c;该算法模拟小龙虾的避暑、竞争和觅食行为&#xff0c;具有搜索速度快&#xff0c;搜索能力强&#xff0c;能够有效平衡…

【Devchat-AI】编程得力助手,DevChat会让你对编程有新理解新认识

2023年&#xff0c;注定是一个AI大语言模型百花齐发的一年&#xff0c;从chatGPT开始&#xff0c;紧随其后&#xff0c;文心一言&#xff0c;通义千问&#xff0c;星火等等都发布了各自的语言大模型&#xff0c; 各有优势&#xff0c;但也能看出来&#xff0c;还有很多长的路要…

记一次经典SQL双写绕过题目[极客大挑战 2019]BabySQL 1

题目环境&#xff1a; 作者已经描述进行了严格的过滤 做好心理准备进行迎接 判断注入类型 admin 1’ 字符型注入万能密码注入 admin 1’ or ‘1’1 报错 已经是字符型注入了&#xff0c;所以的话只有or这里存在了过滤 联想到buuctf里面还没有碰到双写绕过的题目 所以这里斗胆试…