Python上手学习

这篇博客介绍了Python的基础学习,包括安装、变量、基本函数、包的导入与使用,重点讲解了print、input、f-string、string.format()、os、shutil、pyecharts、xlwt、Pillow和Scrapy等实战应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

安装python

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

python --version # 查看python version 
brew search python3
brew install python3 # 安装python3

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

print("hello world")

创建变量

Python定义对象不用申明类型

name="shixicheng"
id=1

支持对象转化类型

print(int("3"))
print(str(1))

python每句结束不用加;

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

print(1+5)  #加法运算
print(5**3) #次方运算,5的3次方

string可以赋值换行的字符串

info="""
李雷
韩梅梅
学英语
"""

基本函数

print 输出

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

def print(self, *args, sep=' ', end='\n', file=None): 
参数描述
args输出数据,可以是多个字符串对象
sep每个字符串对象之间的拼接字符串,默认空格
end最后一个字符串结尾,默认\n
file打印到某个文件,文件对象

输出到文件

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

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

name=input("请输入")
print(name)

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

f-string 格式化

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

name="shixicheng"
company="fcbox"
info=f"""
{name}个人信息 
姓名是{name},
公司是{company}
"""
string.format()

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

name="shixicheng"
company="fcbox"
"{}个人信息,姓名是{},公司是{}".format(name, name, company)
判断和循环

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

# if
if a==b:
  print(a)
elif a==2:
  print(b)
else:
  print(3)

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

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

导包与系统包

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

# 导入os包
import os
# 导入os.rmdir方法
from os import rmdir
os 操作系统
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命令
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时安装的。

pip3 install pillow
pip3 list //查看pip安装的插件
pyecharts 统计分析

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

柱状图

from pyecharts import Bar
bar = Bar()
name = "服装"
x_axis = ["衬衫", "羊毛衫", "雪纺衫"]
y_axis = [5, 20, 36]
bar.add(name, x_axis, y_axis)
bar.render()

词云

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/

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可以完成基本图片操作,如增加滤镜,修改大小之类的。

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下载

pip3 install scrapy

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

scrapy startproject tutorial #生成scrapy初始项目

生成的scrapy项目目录

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` 文件中:

import scrapy

from tutorial.items import 优快云Item

class 优快云Spider(scrapy.spiders.Spider):
    name = "dmoz"
    allowed_domains = ["domz.org"]
    start_urls = [
        "https://blog.youkuaiyun.com/luo4105"
    ]

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

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

scrapy crawl dmoz

得到如下打印

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.youkuaiyun.com/robots.txt> (referer: None)
2019-03-31 15:36:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://blog.youkuaiyun.com/luo4105> (referer: None)

输出json文件

修改爬虫类dmoz_spider.py

import scrapy

from tutorial.items import 优快云Item

class 优快云Spider(scrapy.spiders.Spider):
    name = "dmoz"
    allowed_domains = ["domz.org"]
    start_urls = [
        "https://blog.youkuaiyun.com/luo4105"
    ]

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

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

import scrapy

class 优快云Item(scrapy.Item):
    title = scrapy.Field()
    desc = scrapy.Field()
scrapy crawl dmoz -o items.json

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值