Python
Python
ErikChan.hk
深耕前端(Vue, React)、磨练服务端(Go、Java)、向往嵌入式(计组、操作系统)、膜拜编译原理
展开
-
【Python】文件操作 r+ 的问题
问题背景想用 python 实现文件的读取,并修改部分内容,再写回去。 r+ 是最符合的权限,可读写,并且可以覆盖文件之前的内容。但是实际使用时, 发现修改后的内容是追加的方式,而不是覆盖。 with open(gitignore, "r+") as f: ignore_data = f.read() if "cconfig.h" in ignore_data: ignore_data = ignore_data.replace("cconfig.h", "原创 2022-03-01 20:37:13 · 2686 阅读 · 1 评论 -
多线程中的生产者消费者模型
为什么要使用生产者和消费者模式在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了解决这个问题于是引入了生产者和消费者模式。什么是生产者消费者模式生产者消费者模式是通过一个容器来解决...原创 2019-01-10 13:09:56 · 448 阅读 · 0 评论 -
线程与进程的用法与区别
几乎所有语言在学习的过程中,都会碰到线程和进程的问题,也应该是大部分“程序员”学习后最容易忘记的内容内容,那么他们之间到底有什么不同呢?1、进程和线程的定义进程是一个术语,用来描述一组资源和程序所需的内存分配,也就是各种资源的集合、一个程序执行的实例。进程之间独立享用资源。线程是一堆指令的集合,操作系统调用CPU的最小单位,他是比进程更小的能独立运行的基本单位。所有线程之间共享资源,系...原创 2019-01-10 15:05:49 · 204 阅读 · 0 评论 -
Python与MySQL交互
使用pymysql进行python与mysql的交互下载安装pip3 install pymysql执行sql#!/usr/bin/env python# -*- coding:utf-8 -*-# author:Erik Chan# datetime:2019/1/17 17:44# software: PyCharmimport pymysql # 创建连接...原创 2019-01-17 18:37:51 · 213 阅读 · 0 评论 -
python中yield的用法--浅显易懂
yield这个关键词相信大部分初学者第一次都很难弄懂,我也是经过多次的学习忘记,再学习,还有查阅其他人的分享,最后终于搞清楚啦。如果大家想更清晰地了解,建议大家用单步调试调试以下代码:def consumer(name): print("%s 准备吃包子啦!" %name) while True: baozi = yield "return返回的值..." ...原创 2019-01-26 10:30:25 · 1308 阅读 · 0 评论 -
如何解决'chromedriver' executable needs to be in PATH.的问题
使用selenium 用chrome打开某个网站时,如下代码运行会出现以下错误:from selenium import webdriverbrowser = webdriver.Chrome()browser.get("http://www.baidu.com")、即'chromedriver' executable needs to be in PATH.看了很多其他文章,...原创 2019-03-19 15:01:44 · 6227 阅读 · 3 评论 -
关于爬虫新建工程scrapy startproject出错的问题
scrapystartprojectdemo时遇到的问题:解决方法pip install -I cryptography。原创 2019-03-16 18:51:04 · 2765 阅读 · 2 评论 -
memcached安装与启动
1、下载相关软件:Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器S停止运行或崩溃了,所有存放在S上的键/值对都将丢失。下载地址:http://www.runoob.com/memcached/wind...原创 2019-04-03 14:33:12 · 1093 阅读 · 0 评论 -
Redis安装与启动
1、下载安装redis:下载解压包,直接解压到任意路径下即可 windows下载地址:https://github.com/MSOpenTech/redis/releases2、启动2.1 启动要先开启一个控制台作为服务端,启动服务,然后在重新打开一个控制台,连接服务进行操作。redis-server.exe redis.conf //redis.conf配置文件在...原创 2019-04-03 14:40:40 · 212 阅读 · 0 评论 -
Python装饰器
一、么是装饰器?装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象。装饰器的应用场景:比如插入日志,性能测试,事务处理,缓存等等场景二、装饰器的实现定义一个用于计算运行时间的装饰器函数:def count_time(func): def wrapper(*args,**kwarg...原创 2019-07-04 20:46:57 · 127 阅读 · 0 评论 -
Django请求的生命周期
1、Django请求生命周期的概念:从用户输入url到用户看到网页的整个过程。2、请求过程描述:(1)用户输入网址,浏览器发起请求(2)WSGI(服务器网关接口)创建socket服务端,接受请求(3)中间件处理请求(4)url路由,根据当前请求的url找到相应的视图函数(5)进入view,进行业务处理,执行类或者函数,返回字符串(6)再次通过中间件处理相...原创 2019-07-05 20:25:43 · 2752 阅读 · 0 评论 -
Python问题
1、解释型和编译型编程语言的区别解释型语言(Interpreted language)是一种编程语言。这种类型的编程语言,会将代码一句一句直接运行,不需要像编译语言一样,经过编译器先编译为机器代码,之后再运行。这种语言需要利用解释器,在运行期,动态将代码逐句解释为机器代码,或是已经预先编译为机器代码的子程序,之后再运行。编译型语言(Compiled language)是一种以编译器来实现...原创 2019-07-17 19:27:34 · 165 阅读 · 0 评论 -
Importlib模块与__import__详解
Importlib模块与__import__都可以通过过字符串来导入另外一个模块,但在用法上和本质上都有很大的不同。以一个例子为证:以下为我的工程目录结构:lib/test.py:name = "Jack"def getName(): print(name) return namedemo.py:name = "Amy"def getN...原创 2019-01-04 19:15:11 · 1911 阅读 · 2 评论 -
Python实现验证用户信息后跳转网页的功能
username = 'root'password = '123456'#用于验证用户信息的装饰器def auth(type): def deco(func): def wrapper(*args,**kwargs): name = input("请输入用户名:").strip() pwd = input("请输入密...原创 2018-12-25 14:50:34 · 3516 阅读 · 1 评论 -
Python文件操作
filename = ""#打开文件:f = open(filename,encoding = "UTF-8");#读取文件内容:content = f,read()#打开模式:'r':只读,'w':只写,'a':追加,'r':读写,'w+':写读#读一行: f.readline()#读多行:f.readlines()#遍历文件:for line in f: ...原创 2018-12-25 10:25:36 · 183 阅读 · 0 评论 -
Python中如何使用boolean类型的数据
在写代码的过程中,遇到了定义boolean类型变量的问题,之前一直试图用java或者c定义布尔变量的方法,一直不奏效。经过一旦学习之后才明白,和java竟然只是大小写的问题,在python中将java中的true携程True,将false携程False即可,真的是让人哭到想笑啊,Python为什么会这么奇葩!!!下面是一些例子:定义一个Boolean类型的变量:isOK = False...原创 2018-12-19 15:17:38 · 12543 阅读 · 0 评论 -
Python列表学习笔记
昨天学习了列表的知识,感觉很像java中的数组,但这个列表确实功能更强大一点;定义一个列表:lists = ["Tecent","Alibaba","Baidu","Apple","Amzon","Samaung"]获取第index个元素:elem = lists[index]获取多个元素: elems = lists[0:3]获取最后一个元素:elem = lists[原创 2018-12-20 12:55:33 · 172 阅读 · 0 评论 -
Python实现购物车的功能
列表是Python中最基本的数据结构。列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推,列表可以用于存储很多维度的数据,一个应用就是用于购物车的实现,以下是我写的一个购物车的小程序,本例子中通过一个goods的;列表存储所有商品的名称和金额,通过操作goods列表来完成整个购物过程,另外还有还有运行的结果,与大家分享:moeny = input(...原创 2018-12-20 15:16:53 · 999 阅读 · 0 评论 -
Python之字符串操作
每种语言都有字符串这个数据类型,但是每种语言的字符串操作都不尽相同,python相对于其他语言,字符串操作其实有明显的优势,简单明了。# 定义一个字符串name = "phone"#将首字母变成大写:name.capitalize()#格式化字符串,不足的用其他标识填补:name.center(50."-")#把tab转成若干个空格:name.expandtabs(tab...原创 2018-12-21 09:55:54 · 160 阅读 · 0 评论 -
Python增删改查文件
#!/usr/bin/env python# -*- coding:utf-8 -*-# author:Erik Chan# datetime:2018/12/27 9:29# software: PyCharmimport os# 获取当前文件的父目录文件夹DIR = os.path.dirname(os.path.abspath(__file__))cwd = os.ge...原创 2018-12-27 10:11:19 · 750 阅读 · 0 评论 -
Python生成器与迭代器
#!/usr/bin/env python# -*- coding:utf-8 -*-# author:Erik Chan# datetime:2018/12/26 18:39# software: PyCharmfrom collections import Iterable, Iterator# 生成器def func(): for i in range(10): ...原创 2018-12-27 10:28:31 · 122 阅读 · 0 评论 -
Python用面向对象实现人类之间交朋友的功能
# 人类:一个父类class human(object): nation = "china" def __init__(self,name,gender,phone): self.name = name self.gender = gender self.phone = phone # 将个人信息存储在列表中,并返回这...原创 2018-12-29 10:01:36 · 444 阅读 · 3 评论 -
python2与python3对于多继承的不同策略
以一个经典的祖孙族谱来解释这个问题:class Human: def __init__(self): print("I'm human")class Mother(Human): def __init__(self): print("I'm uncle")class Father(Human): def __init__(s...原创 2018-12-29 10:29:23 · 403 阅读 · 0 评论 -
字典的用法
python中字典与元组和列表不同的是,字典的元素是无序的,通过key值进行增删改查字典中的元素。#定义一个字典:dicts = {"name":"Alice", # name对应的为key,Alice对应value"age":17,"gender":"female""phone","23456789"}#获取元素:elem = di原创 2018-12-24 09:58:12 · 309 阅读 · 0 评论 -
Socket通信案例--实现发送与接收数据
客户端:import socketclient = socket.socket()client.connect(("localhost",6969))while True: msg = input("我要发数据>>:").strip() print("开始发送数据: "+msg) client.send(msg.encode("UTF-8"))cl...原创 2019-01-03 18:19:21 · 1561 阅读 · 0 评论 -
python集合操作
#定义一个集合:coll = set([1,2,3,4,5,6])coll1 = set([9,2,0,7,5,1])#获取交集coll.intersection(colls)#获取并集coll.union(colls)#差集coll.difference(coll2)#是否为子集coll.issubset(coll2)#是否为父集coll.issuperset(...原创 2018-12-24 19:20:14 · 112 阅读 · 0 评论 -
Python实现用户登录账户
学习python已有一段时间,对于python有了一定了解之后开始实战写代码,python的语法真的是和java,C等有很大的不同,毕竟python有着强大的第三方库的支持,不过我目前还只用到系统自带的模块,写一点简单的程序,慢慢学习,并在学习的过程中与大家分享,希望在这个过程中,能够更好地学到更多的内容。。。# 用户原始名称与密码_username,_password = "Jacky...原创 2018-12-19 14:57:46 · 12163 阅读 · 0 评论