文件读写
目录结构
linux:/
windows:( \C:\ D:\ )
绝对路径:以根目录为起始
相对路径,以当前为起始点(.),上一级为(..),再上一级(../..),下一级(./)
读写
+在原功能的基础上增加读写功能
x创建写模式
f=open(“文件路径”,”模式:读(r)、清空原数据写(w)、在原文件基础上继续写(a)”,encoding=”编码”)
f=close()
or
with open(“文件路径”,”模式:读(r)、清空原数据写(w)、在原文件基础上继续写(a)”,encoding=”编码”) as f
读
rt以文本模式打开
rb以二进制模式打开
print(f.read()) 一次性读完所有,并记录文件
print(f.read(byte)) 一次性读相应字节数
print(f.readline()) 读一行内容并打印
print(f.readlines()) 返回全部文件内容
1 | fname = input("请输入要打开的文件名称:") |
1 | f = open("./data.text","r",encoding="utf-8") |
写
f.write()
ls = [“中国”, “法国”, “美国”]
f.writelines(ls)
f.seek(0)
数据
一维
数据的维度:一维、二维、多维、高维
一维数据的表示:列表类型(有序)和集合类型(无序)
一维数据的存储:空格分隔、逗号分隔、特殊符号分隔
一维数据的处理:字符串方法 .split() 和 .join()
二维
二维数据的表示:列表类型,其中每个元素也是一个列表
CSV格式:逗号分隔表示一维,按行分隔表示二维
二维数据的处理:for循环+.split()和.join()
异常
捕捉异常
try
except
try:代码
except:可能发生的异常类型 print(“不符合规则”)
except:捕捉所有类型
else:结果
finally:结束程序
测试
库:import unittest
被测试文件:text.py
测试文件:test_text.py
from 文件名 import 函数名/类名
class Test类名(unittest.TestCase):
def setUp(self):
self.sentence = Sentence(“测试开始”)
def test_(self):
assert 会直接中断
self.assertEqual(self.sentence.被测试类或函数)
python -m unittest 运行 .表示测试通过F表示没有通过
assertEqual(A,B) 取反assertNotEqual(A,B)
assertTrue(A) 取反assertFalse(A)
asserttln(A,B) A in B 取反assertNotln(A,B)
列表、字典、元组
列表
shopping_list=[,] 列表是可变的
.append 添加
max(list)
min(list)
sorted(list)
元组
example_tuple=(,) 不可变,但可以存相同
字典
dict={“键”:”值”,} 可变
dict[“键”]=”值” 添加
“键” in dict 可知该键是否存在
del dict[“键”]=”值” 删除
dict.key()所有键
dict.valus()所有值
dict.items()所有键值对
d.get(k,
d.pop(k,
d.popitem() 随机从字典d中取出一个键值对,以元组形式返回
d.clear() 删除所有的键值对
len(d)
集合
集合用大括号 {} 表示,元素间用逗号分隔
建立集合类型用 {} 或 set()
建立空集合类型,必须使用set()
S.add(x) 如果x不在集合S中,将x增加到S
S.discard(x) 移除S中元素x,如果x不在集合S中,不报错
S.remove(x) 移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear() 移除S中所有元素
S.pop() 随机返回S的一个元素,更新S,若S为空产生KeyError异常
S.copy() 返回集合S的一个副本
len(S) 返回集合S的元素个数
x in S 判断S中元素x,x在集合S中,返回True,否则返回False
x not in S 判断S中元素x,x不在集合S中,返回True,否则返回False
set(x) 将其他类型变量x转变为集合类型
包含关系比较、数据去重
序列
序列类型:字符串类型、元组类型、列表类型
爬虫
获取网页内容 requests
解析网页内容
HTTP
GET
POST
请求行:
POST/user/info HTTP/1.1
请求头:
HOST:www.example.com
User-Agent:curl/7.77.0
Accept:/
e:接受HTML text/html、接受JOSN application/json、 接受HTML和JSON text/html,application/json、接受任意类型*/*
请求体://GET一般是空的
{“username”:
“email”:”llj.qq.com”}
网页技术结构
HTML(定义网页的结构和信息) CSS(定义网页的样式) JavaScript(定义用户和网页的交互逻辑)
HTML
1 | <!DOCTYPE HTML> 告知浏览器是html |
储存和分析数据BeautifulSoup4
soup = BeautifulSoup(content,”html.parser”)
all=soup.findAll(“标签”,attrs={“class”:”value”})
利用for循环筛选
1 | import requests |
wordcloud库的使用
wordcloud库把词云当作一个WordCloud对象
w.generate(txt) 向WordCloud对象w中加载文本txt
w.to_file(filename) 将词云输出为图像文件,.png或.jpg格式
1 | import wordcloud |
w = wordcloud.WordCloud(<参数>)
width 指定词云对象生成图片的宽度,默认400像素
height 指定词云对象生成图片的高度,默认200像素
min_font_size 指定词云中字体的最小字号,默认4号
max_font_size 指定词云中字体的最大字号,根据高度自动调节
font_step 指定词云中字体字号的步进间隔,默认为1
font_path 指定字体文件的路径,默认None
max_words 指定词云显示的最大单词数量,默认200
stop_words 指定词云的排除词列表,即不显示的单词列表
mask 指定词云形状,默认为长方形,需要引用imread()函数
background_color 指定词云图片的背景颜色,默认为黑色
mask = imread("图形照片") from imageio import imread
jieba库
- 中文文本需要通过分词获得单个的词语
- jieba是优秀的中文分词第三方库,需要额外安装
- jieba库提供三种分词模式,最简单只需掌握一个函数
分词三种模式
- 精确模式:把文本精确的切分开,不存在冗余单词 jieba.lcut(s)
- 全模式:把文本中所有可能的词语都扫描出来,有冗余 jieba.lcut(s, cut_all=True)
- 搜索引擎模式:在精确模式基础上,对长词再次切分jieba.lcut_for_search(s)
jieba.add_word(w)向分词词典增加新词
1 | import jieba |
turtle
turtle.setup(width, height, startx, starty) 建立绘制窗口
turtle.goto(x, y) 空间坐标前进与后退
turtle.seth(angle) 改变行进的方向,绝对
turtle.left(angle) 左转
turtle.right(angle) 右转
turtle.colormode(mode) 颜色
turtle.penup() turtle.pu()抬起画笔
turtle.pendown() turtle.pd()落下画笔
turtle.pensize(width) turtle.width(width)画笔宽度
turtle.pencolor(color) 画笔颜色
turtle.forward(d) turtle.fd(d)向前行进
turtle.circle(r, extent=None)r: 默认圆心在海龟左侧r距离的位置,extent: 绘制角度,默认是360度整圆
turtle.setheading(angle) turtle.seth(angle)改变行进方向
random
基本随机数函数:seed(), random()
扩展随机数函数:randint(), getrandbits(), uniform(),randrange(), choice(), shuffle(), sample()
Pylnstaller
pip install pyinstaller
pyinstaller -F <文件名.py>
–clean 清理打包过程中的临时文件
-D, –onedir 默认值,生成dist文件夹
-F, –onefile 在dist文件夹中只生成独立的打包文件
-i <图标文件名.ico> 指定打包程序使用的图标(icon)文件
pyinstaller -F Text_progress_bar.py #打包exe
pyinstaller -F -w Text_progress_bar.py #不带控制台打包
pyinstaller -F -w chengzi.ico Text_progress_bar.py #打包指定exe图标
https://app.xunjiepdf.com/img2icon/链接转化成ico图片
数据
字符串反转
a=’123456789’
a = a[::-1]