前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python上手学习

Python上手学习

作者头像
逝兮诚
发布2019-10-30 18:22:11
6220
发布2019-10-30 18:22:11
举报
文章被收录于专栏:代码人生

python的语法简单,可以很好提高个人生产力。我花了2天的时间重零开始学习python,目前已经能做爬虫了。

这篇博客是不管原理,直接干,直接梭的学习博客。这篇博客包含安装基本语法(创建变量、基本函数、判断语法),导入包(系统操作),导入外部开源包(pip3下载包,pyecharts可视化,xlwt包操作excel,Pillow操作图片,Scrapy爬虫)

安装python

mac系统中默认安装一个python,一般是python2,但是python2已经过时,需要下载python3。打开终端,输入

代码语言:javascript
复制
python --version # 查看python version 
代码语言:javascript
复制
brew search python3
brew install python3 # 安装python3

输入python3,当前缀是>>>时,代表安装成功,并可以写代码了。输入熟悉的hello world。

代码语言:javascript
复制
print("hello world")

创建变量

Python定义对象不用申明类型

代码语言:javascript
复制
name="shixicheng"
id=1

支持对象转化类型

代码语言:javascript
复制
print(int("3"))
print(str(1))

python每句结束不用加;

python支持+-*/四种运算符,支持次方运算

代码语言:javascript
复制
print(1+5)  #加法运算
print(5**3) #次方运算,5的3次方

string可以赋值换行的字符串

代码语言:javascript
复制
info="""
李雷
韩梅梅
学英语
"""

基本函数

print 输出

print用于输出,默认输出控制行,亦可输出文件,查看源码定义

代码语言:javascript
复制
def print(self, *args, sep=' ', end='\n', file=None): 

参数

描述

args

输出数据,可以是多个字符串对象

sep

每个字符串对象之间的拼接字符串,默认空格

end

最后一个字符串结尾,默认\n

file

打印到某个文件,文件对象

输出到文件

代码语言:javascript
复制
f = open(r"/user/marx_luo/download/test.txt",'w');
print("李雷","韩梅梅","莉莉安",sep="-",end=".",file=f)
input 输入

input()可以在监控输入并赋值。

代码语言:javascript
复制
name=input("请输入")
print(name)

结果会打印输入的字符串。

f-string 格式化

f-string可以把变量赋值到string中,如

代码语言:javascript
复制
name="shixicheng"
company="fcbox"
info=f"""
{name}个人信息 
姓名是{name},
公司是{company}
"""
string.format()

format()作用与f-string相似,只是格式不同。

代码语言:javascript
复制
name="shixicheng"
company="fcbox"
"{}个人信息,姓名是{},公司是{}".format(name, name, company)
判断和循环

python的判断和循环与其他语言一样,也是ifwhilefor

代码语言:javascript
复制
# if
if a==b:
  print(a)
elif a==2:
  print(b)
else:
  print(3)

python通过缩进来划分代码块,而不是java的{},它并不强制要求缩进是tab、四个空格,两个空格等,只要同一层,空格数一致就可以了。

代码语言:javascript
复制
# while
while a==b:
  a=a+1
  print(a)
代码语言:javascript
复制
# for ... in 
numbers = [1,2,3,4,5,6]
for x in numbers:
  print("遍历所有元素{}".format(x))

导包与系统包

python通过import导入其他包,也可以导入包的某个方法

代码语言:javascript
复制
# 导入os包
import os
# 导入os.rmdir方法
from os import rmdir
os 操作系统
代码语言:javascript
复制
import os
# getcwd() 获得文件路径
print(os.getcwd())
# rename修改文件名
os.rename("test.txt","demo.txt")
# 新建文件夹
os.mkdir("test")
# 移动本文件夹到
os.chdir("test")
print(os.getcwd())
# 删除文件夹
os.rmdir("test")
# 打印文件夹下文件名和文件夹
print(os.listdir())
shutil 操作sh命令
代码语言:javascript
复制
import os
  
if bool(1 - os.path.exists("鸣人")):
    os.mkdir("鸣人")
fp = open("hackwork.jpg", 'w')

import shutil
shutil.copyfile("hackwork.jpg", "hackwork-copy.jpg") //复制文件
shutil.copytree("鸣人", "鸣人的影分身") //复制文件夹

shutil.move("hackwork.jpg", "鸣人") // 移动文件到文件夹

外部包

python可以下载并导入开源包,推荐使用pip,pip貌似是安装python时安装的。

代码语言:javascript
复制
pip3 install pillow
pip3 list //查看pip安装的插件
pyecharts 统计分析

pyecharts是将数据生成echarts网页的第三方包。它可以画条形图,饼状图,词云等多种统计图。官方API:http://pyecharts.org/。

柱状图

代码语言:javascript
复制
from pyecharts import Bar
bar = Bar()
name = "服装"
x_axis = ["衬衫", "羊毛衫", "雪纺衫"]
y_axis = [5, 20, 36]
bar.add(name, x_axis, y_axis)
bar.render()

词云

代码语言:javascript
复制
from pyecharts import WordCloud
name = ["666", "赞同", "厉害", "有用", "赞"]
value = [122,32,42,23,11]
wordcloud = WordCloud(width=1300, height=620)
wordcloud.add("",name,value)
wordcloud.render("wordcloud.html")
xlwt 操作excel

xlwt是一个可以操作excel的开源包,官方API:https://pypi.org/project/xlwt/

代码语言:javascript
复制
workbook = xlwt.Workbook(encoding="utf-8")

worksheet = workbook.add_sheet('第一周')
worksheet = workbook.add_sheet('第二周')
worksheet = workbook.add_sheet('第三周')
worksheet = workbook.add_sheet('第四周')

workbook.save("工作计划.xls")

workbook = xlwt.Workbook(encoding="utf-8")
worksheet = workbook.add_sheet('第一周')
worksheet.write(1,0,label="星期一")
worksheet.write(2,0,label="星期二")
worksheet.write(3,0,label="星期三")
worksheet.write(4,0,label="星期四")
worksheet.write(5,0,label="星期五")
worksheet.write(0,1,label="工作计划")

workbook.save("工作计划2.xls")
Pillow 操作图片

pillow可以完成基本图片操作,如增加滤镜,修改大小之类的。

代码语言:javascript
复制
hanmeimeiPic = Image.open("hmm.jpg")

hanmeimeiPic.show()

# 图片处理
zjlImage = Image.open("zjl.jpg")
# 模糊滤镜
blurZjlImage = zjlImage.filter(ImageFilter.BLUR)
blurZjlImage.save('filter/blurZjl.jpg', 'jpeg')

# 高斯模糊
gsBlurZjlImage = zjlImage.filter(ImageFilter.GaussianBlur)
gsBlurZjlImage.save('filter/gsBlurZjl.jpg', 'jpeg')

# 边缘增强
edgeEnhanceZjlImage = zjlImage.filter(ImageFilter.EDGE_ENHANCE)
edgeEnhanceZjlImage.save('filter/edgeEnhanceZjl.jpg', 'jpeg')

# 找到边缘
edgesZjlImage = zjlImage.filter(ImageFilter.FIND_EDGES)
edgesZjlImage.save('filter/edgeZjl.jpg', 'jpeg')

# 浮雕
embossZjlImage = zjlImage.filter(ImageFilter.EMBOSS)
embossZjlImage.save('filter/embossZjl.jpg', 'jpeg')

# 轮廓
contourZjlImage = zjlImage.filter(ImageFilter.CONTOUR)
contourZjlImage.save('filter/contourZjl.jpg', 'jpeg')

# 锐化
sharpenZjlImage = zjlImage.filter(ImageFilter.SHARPEN)
sharpenZjlImage.save('filter/sharpenZjl.jpg', 'jpeg')

# 平滑
smoothZjlImage = zjlImage.filter(ImageFilter.SMOOTH)
smoothZjlImage.save('filter/smoothZjl.jpg', 'jpeg')

# 细节
detailZjlImage = zjlImage.filter(ImageFilter.DETAIL)
detailZjlImage.save('filter/detailZjl.jpg', 'jpeg')

注意: PyCharm创建项目时,会重新导入一个python虚拟机,lib也是空的,不会导入系统下载的pip3包。需要手动copy包文件夹到项目的lib下。 系统默认的lib路径/usr/local/lib/python3.7/site-packages 项目的lib路径在项目文件夹下的/venv/lib/python3.7/site-packages

Scrapy 爬虫

Scrapy是流行的爬虫工具,官方API:https://scrapy-chs.readthedocs.io/zh_CN/latest/intro/tutorial.html。pip3下载

代码语言:javascript
复制
pip3 install scrapy

新建文件夹,打开终端并进入文件夹,输入

代码语言:javascript
复制
scrapy startproject tutorial #生成scrapy初始项目

生成的scrapy项目目录

代码语言:javascript
复制
tutorial/
    scrapy.cfg
    tutorial/
        __init__.py
        items.py
        pipelines.py
        settings.py
        spiders/
            __init__.py
            ...

属性

  • scrapy.cfg: 项目的配置文件
  • tutorial/: 该项目的python模块。之后您将在此加入代码。
  • tutorial/items.py: 项目中的item文件.
  • tutorial/pipelines.py: 项目中的pipelines文件.
  • tutorial/settings.py: 项目的设置文件.
  • tutorial/spiders/: 放置spider代码的目录.

编写爬虫类,保存在``tutorial/spiders目录下的dmoz_spider.py` 文件中:

代码语言:javascript
复制
import scrapy

from tutorial.items import CSDNItem

class CSDNSpider(scrapy.spiders.Spider):
    name = "dmoz"
    allowed_domains = ["domz.org"]
    start_urls = [
        "https://blog.csdn.net/luo4105"
    ]

    def parse(self, response):
        for sel in response.xpath('//div/div'):
            test=sel.xpath('h4/a/text()').extract()
            print(test)

进入项目的根目录,执行下列命令启动spider:

代码语言:javascript
复制
scrapy crawl dmoz

得到如下打印

代码语言:javascript
复制
2019-03-31 15:36:03 [scrapy.middleware] INFO: Enabled extensions:
...
2019-03-31 15:36:03 [scrapy.middleware] INFO: Enabled downloader middlewares:
...
2019-03-31 15:36:03 [scrapy.middleware] INFO: Enabled spider middlewares:
...
2019-03-31 15:36:03 [scrapy.middleware] INFO: Enabled item pipelines:
[]
2019-03-31 15:36:03 [scrapy.core.engine] INFO: Spider opened
2019-03-31 15:36:03 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2019-03-31 15:36:03 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2019-03-31 15:36:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://blog.csdn.net/robots.txt> (referer: None)
2019-03-31 15:36:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://blog.csdn.net/luo4105> (referer: None)

输出json文件

修改爬虫类dmoz_spider.py

代码语言:javascript
复制
import scrapy

from tutorial.items import CSDNItem

class CSDNSpider(scrapy.spiders.Spider):
    name = "dmoz"
    allowed_domains = ["domz.org"]
    start_urls = [
        "https://blog.csdn.net/luo4105"
    ]

    def parse(self, response):
        for sel in response.xpath('//div/div'):
            item = CSDNItem()
            item['title']=sel.xpath('h4/a/text()').extract()
            item['desc']=sel.xpath('p/a/text()').extract()
            yield item

编辑 tutorial 目录中的 items.py 文件:

代码语言:javascript
复制
import scrapy

class CSDNItem(scrapy.Item):
    title = scrapy.Field()
    desc = scrapy.Field()
代码语言:javascript
复制
scrapy crawl dmoz -o items.json

该命令将采用 JSON 格式对爬取的数据进行序列化,生成 items.json 文件。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/04/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装python
  • 创建变量
  • 基本函数
    • print 输出
      • input 输入
        • f-string 格式化
          • string.format()
            • 判断和循环
            • 导包与系统包
              • os 操作系统
                • shutil 操作sh命令
                • 外部包
                  • pyecharts 统计分析
                    • xlwt 操作excel
                      • Pillow 操作图片
                        • Scrapy 爬虫
                        相关产品与服务
                        图片处理
                        图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档