python遇到的知识点,记录一下。方便学习。

文件相关操作

查了资料,关于open()的mode参数:

'r':读

'w':写

'a':追加

'r+' == r+w(可读可写,文件若不存在就报错(IOError))

'w+' == w+r(可读可写,文件若不存在就创建)

'a+' ==a+r(可追加可写,文件若不存在就创建)

对应的,如果是二进制文件,就都加一个b就好啦:

'rb'  'wb'  'ab'  'rb+'  'wb+'  'ab+'

判断文件或者文件夹是否存在,若不存在就创建

from pathlib import Path
import os
# 判断os文件夹是否存在 返回true或者false
exists = Path("os").exists()
# 如果不存在就创建,注意这里是makedirs方法,可以递归创建文件夹。mkdir是只能创建一级目录
if not exists:
os.makedirs("os")

把网络上的图片保存到本地

# 首先根据reuqest第三方模块得到这个图片 图片的内容调content方法。注意是二进制的数据
url="https://goss.veer.com/creative/vcg/veer/800water/veer-120719876.jpg"
content = requests.get(url).content
# 打开一个文件,只要是图片格式就可以,不存在自己创建,模式是可写的二进制,然后写入。通过这种写入方式你不需要关闭文件。很方便。
# 获取图片url的名字 veer-120719876.jpg
img_name=url.split("/")[-1]
with open(img_name, "wb") as f:
f.write(content)

读取文件内容

# 读取文件并且指定文件的编码格式,如果不指定就会报错
t = open("demo.py",encoding='UTF-8')
# 读取全部的数据
print(t.read())
# 读取一行
print(t.readline())
# 关闭文件
t.close()

拷贝文件

# 高级的 文件、文件夹、压缩包 处理模块
import shutil
# 将hi.py文件拷贝到hi2.py文件中。hi2.py会自动创建 (copyfileobj方法只会拷贝文件内容)
shutil.copyfileobj(open('hi.py','r',encoding="utf-8"), open('hi2.py', 'w',encoding="utf-8"))
#(copyfile只拷贝文件内容)
shutil.copyfile('hi.py', 'hi2222.py')
# shutil.copy(src, dst) 拷贝文件和权限
shutil.copy('hi.py', 'hi2222.py')

编码问题,字节和字符串的互转

s="abc"
b = b"example"
#第二种方法
print(bytes(s, encoding = "utf8"))
print(str(b, encoding="utf-8"))
#第一种方法(推荐)
print( str.encode(s,encoding="utf-8"))
print( bytes.decode(b,encoding="utf-8"))

md5加密

from hashlib import md5
a=md5() # 实例化
a.update("abc".encode('utf8'))# 开始加密
b=a.hexdigest()#获得加密之后的文本
print(str(b))

打开一张本地的图片

from PIL import Image
try:
im = Image.open('captcha.jpg')
im.show()
im.close()
except:
pass

将字符串转换成  selector  用于xpath和css的提取

from lxml import etree

selector=etree.HTML(source)

python遇到的知识点的更多相关文章

  1. Python数据分析--Pandas知识点(三)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) Python数据分析--Pandas知识点(二) 下面将是在知识点一, ...

  2. Python数据分析--Pandas知识点(二)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) 下面将是在知识点一的基础上继续总结. 13. 简单计算 新建一个数据表 ...

  3. Python 五个知识点搞定作用域

    Python 五个知识点搞定作用域 1.块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗? #块级作用域 if 1 == 1: name = "lzl" print(na ...

  4. python基础全部知识点整理,超级全(20万字+)

    目录 Python编程语言简介 https://www.cnblogs.com/hany-postq473111315/p/12256134.html Python环境搭建及中文编码 https:// ...

  5. Python自动化办公知识点整理汇总

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却 ...

  6. python复习。知识点小记

    1.对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符: >>> ord('A') >>> ord('中' ...

  7. python代码零散知识点

    1.用python读入csv文件 green_taxi1=pd.DataFrame(pd.read_csv('../../../../MatlabCode/data/green/green_tripd ...

  8. day-4 python多进程编程知识点汇总

    1. python多进程简介 由于Python设计的限制(我说的是咱们常用的CPython).最多只能用满1个CPU核心.Python提供了非常好用的多进程包multiprocessing,他提供了一 ...

  9. day-3 python多线程编程知识点汇总

    python语言以容易入门,适合应用开发,编程简洁,第三方库多等等诸多优点,并吸引广大编程爱好者.但是也存在一个被熟知的性能瓶颈:python解释器引入GIL锁以后,多CPU场景下,也不再是并行方式运 ...

随机推荐

  1. 洛谷P1216数字三角形题解

    题目 这道题是一个典型的DP,可以用倒推,顺推的方法,来解这道题.当然用不同的方法他的循环次序是不一样的,所以我们一定要深刻地理解题目的大意,再采用状态转移方程与边界每次求出最优解,并记录循环一遍后就 ...

  2. 实验九 在JSP中使用数据库

    实验性质:验证性 实验学时: 1学时 实验地点: 一 .实验目的与要求 1. 掌握在JSP中使用数据库的方法. 2. 掌握JSP对数据库的基本操作:增.删.改.查. 二. 实验内容 1.JSP访问数据 ...

  3. Power Stations HDU - 3663

    我为什么T了.... Power Stations Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  4. haar的简单应用(2)

    上次对图片进行了人脸识别,这次对摄像头捕获的内容进行识别 直接写注释来解释 import cv2 def CatchUsbVideo(window_name, camera_idx): #定义一个函数 ...

  5. ARC 086 E - Smuggling Marbles(dp + 启发式合并)

    题意 Sunke 有一棵 \(N + 1\) 个点的树,其中 \(0\) 为根,每个点上有 \(0\) 或 \(1\) 个石子, Sunke 会不停的进行如下操作直至整棵树没有石子 : 把 \(0\) ...

  6. 【arc071f】Infinite Sequence(动态规划)

    [arc071f]Infinite Sequence(动态规划) 题面 atcoder 洛谷 题解 不难发现如果两个不为\(1\)的数连在一起,那么后面所有数都必须相等. 设\(f[i]\)表示\([ ...

  7. 如何在代码中减少if else语句的使用

    前言 代码中嵌套的if/else结构往往导致代码不美观,也不易于理解.面向过程的开发中代码有大量的if else,在java中可以用一些设计模式替换掉这些逻辑,那么在js中是否也有类似的方法用来尽可能 ...

  8. Baker Vai LightOJ - 1071 (MCMF)

    在个给出的矩阵从,从左上角走到右下角,然后再从右下角走到左上角,两次不能经过想同的点,每个点都有一个价值,问最大的价值是多少. 可以把原来的问题化简成从左上角走两条路到右下角,然后把价值加起来,然是这 ...

  9. 【Linux】linux正则表达式及通配符

    正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列.拥有强大的字符搜索功能.也非常方便的搜索过滤出我们想要的内容. linux正则表达式分为基本正则表达式(Basic Regexp)和扩展 ...

  10. 【CF600E】Lomsat gelral

    题目大意:给定一棵 N 个节点的有根树,1 号节点是树的根节点,每个节点有一个颜色.求对于每个节点来说,能够支配整棵子树的颜色之和是多少.支配的定义为对于以 i 为根的子树,该颜色出现的次数不小于任何 ...