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

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

文件的打开

文件的打开模式
文件打开模式 描述
‘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" 文件

代码结果如下:

目录
相关文章
|
11天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
16天前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
17天前
|
网络协议 数据库连接 Python
python知识点100篇系列(17)-替换requests的python库httpx
【10月更文挑战第4天】Requests 是基于 Python 开发的 HTTP 库,使用简单,功能强大。然而,随着 Python 3.6 的发布,出现了 Requests 的替代品 —— httpx。httpx 继承了 Requests 的所有特性,并增加了对异步请求的支持,支持 HTTP/1.1 和 HTTP/2,能够发送同步和异步请求,适用于 WSGI 和 ASGI 应用。安装使用 httpx 需要 Python 3.6 及以上版本,异步请求则需要 Python 3.8 及以上。httpx 提供了 Client 和 AsyncClient,分别用于优化同步和异步请求的性能。
python知识点100篇系列(17)-替换requests的python库httpx
|
9天前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
25 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
13天前
|
调度 Python
python知识点100篇系列(20)-python协程与异步编程asyncio
【10月更文挑战第8天】协程(Coroutine)是一种用户态内的上下文切换技术,通过单线程实现代码块间的切换执行。Python中实现协程的方法包括yield、asyncio模块及async/await关键字。其中,async/await结合asyncio模块可更便捷地编写和管理协程,支持异步IO操作,提高程序并发性能。协程函数、协程对象、Task对象等是其核心概念。
|
11天前
|
Python Windows
python知识点100篇系列(24)- 简单强大的日志记录器loguru
【10月更文挑战第11天】Loguru 是一个功能强大的日志记录库,支持日志滚动、压缩、定时删除、高亮和告警等功能。安装简单,使用方便,可通过 `pip install loguru` 快速安装。支持将日志输出到终端或文件,并提供丰富的配置选项,如按时间或大小滚动日志、压缩日志文件等。还支持与邮件通知模块结合,实现邮件告警功能。
python知识点100篇系列(24)- 简单强大的日志记录器loguru
|
11天前
|
自然语言处理 Python Windows
python知识点100篇系列(23)- 使用stylecloud生成词云
【10月更文挑战第10天】`stylecloud` 是 `wordcloud` 的优化版,支持使用 Font Awesome 图标自定义词云形状,操作更简便。本文介绍如何安装 `jieba` 和 `stylecloud` 库,并使用它们生成中文词云。通过 `jieba` 进行分词,再利用 `stylecloud` 的 `gen_stylecloud` 方法生成具有特定形状和颜色的词云图像。
python知识点100篇系列(23)- 使用stylecloud生成词云
|
15天前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
15天前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
18天前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
40 2