好想学python找不到_为什么自学Python看不进去?

由问题可以看出,题主的Python基础掌握的不够扎实,学习过程当中也没进行代码实操。其实这是Python初学者经常遇到的问题,当务之急应该是夯实Python基础,在学习的过程当中代码实操,遇到问题及时需求帮助解答。搞定了这些,才算是真正的打好了Python入门的基础。

正好现在有一份Python教程,十分适合Python小白,除了Python基础知识之外,还能同时代码实操,又能互动答疑,应该可以解决题主遇到的问题。

真正的打好了Python基础之后,入门就变得简单多了。可以在网上找一些Python实操项目,也可以根据自己的实际需求写一个Python脚本实现预想中的功能。

网上的实操项目很多,因此就不再赘述了。这里说下个人初学Python时写的那些脚本,分享给大家。

1、文件或图片批量重命名

思路:

1)使用input获取文件路径、获取文件后缀

2)若文件为纯数字输入1,执行if语句,否则执行else语句

3)首先对旧文件名进行排序(纯数字和非纯数字要进行区分)

4)把要改的名字写入到和py文件同文件夹下的id.txt并进行读取,生成列表

5)构建旧文件全名称,包括路径

6)使用for循环生成新文件全名称,包括路径

7)使用os的rename功能进行重命名

注:如果担心排序问题造成没有一一对应的重命名,可打印重命名结果

代码如下:

import os

path = input('请输入文件所在路径(结尾加上/):')

houzhui = input("请输入后缀,(如.jpg):")

number = input("纯数字请输入1,否则请输入2:")

print(type(number))

if number == '1':

fileList = os.listdir(path)

fileList.sort(key=lambda x: int(x[:-4]))

print(fileList)

else:

fileList = os.listdir(path)

#从外部文件当中获取内容生成列表

file = open("id.txt", "r") #打开文件

txt = file.readlines() #读取每一行

ID = []

for z in txt:

z = z.replace("\n", "") #换行符替换为空

ID.append(z) #把值添加到列表当中

print(ID)

#循环,批量命名

n = 0

for i in fileList:

# 设置旧文件名(就是路径+文件名)

oldname = path + os.sep + fileList[n] # os.sep添加系统分隔符

for x in ID:

newname = path + os.sep + str(ID[n]) + houzhui #设置新文件名,可自行输入后缀格式

os.rename(oldname, newname) # 用os模块中的rename方法对文件改名

print(oldname, '======>', newname) #打印结果

n += 1

###后期可使用pyinstaller生成exe工具

os.system("pause") #可防止生成的exe执行文件执行完成即消失

2、抓取所在城市房价、地址等信息

思路:

1)确定目标网址,需要爬取的内容:小区名称、小区地址、出售状态、价格

2)找出网址规律,使用for...in...得到需要抓取的每个页面

3)使用requests请求页面

4)使用BeautifulSoup的select、findall得到目标区域

5)通过if...else...和for...in...以及strip()等对数据进行处理

6)把得到的结果通过append()添加到列表

7)使用pandas.DataFrame.to_excel保存到excel

代码:

from bs4 import BeautifulSoup

import re

import requests

import pandas

import openpyxl

URL = 'https://zz.newhouse.fang.com/house/s/b91/'

HTML = requests.get(URL)

SOUP = BeautifulSoup(HTML.content, 'html.parser', from_encoding='gb18030')

last_page = SOUP.select('.last')

page_number = int(last_page[0]['href'].split('/')[3].split('9')[1])

print(page_number)

names_list = []

adresses_list = []

all_type_list = []

all_money_list = []

url_demo = 'https://zz.newhouse.fang.com/house/s/b9{}/'

for i in range(1,(page_number+1)):

url = url_demo.format(i)

html = requests.get(url)

soup = BeautifulSoup(html.content,'html.parser',from_encoding='gb18030')

names = soup.select('.nlcd_name a')

adresses = soup.select('.address a')

for name in names:

names_list.append(name.text.strip())

for adress in adresses:

adress_detail = re.findall(r'".+"',str(re.findall(r'title=".+"',str(adress))))[0]

adresses_list.append(adress_detail.split('"')[1])

all_type = soup.findAll(name="span", attrs={"class":re.compile(r"forSale|inSale|outSale|zusale|zushou")})

for type in all_type:

all_type_list.append(type.text)

if soup.select('.kanzx'):

all_money_list.append('无')

all_money = soup.findAll(name="div", attrs={"class":re.compile(r"nhouse_price|kanesf")})

for money in all_money:

all_money_list.append(money.text.strip())

else:

all_money = soup.findAll(name="div", attrs={"class":re.compile(r"nhouse_price|kanesf")})

for money in all_money:

all_money_list.append(money.text.strip())

all_message = []

for m in range(0,len(names_list)):

message = [names_list[m],adresses_list[m],all_type_list[m],all_money_list[m]]

print(message)

all_message.append(message)

df = pandas.DataFrame(all_message)

df.to_excel('house_price.xlsx')

print(df)

写的小工具比较多,有空继续整理,如有问题,欢迎大家留言!

但是,如果上边两个例子,既有思路,又有代码,你还是不能看懂或者是直接copy下来依旧不知道如何运行,那毫无疑问,你的Python基础不够扎实,代码实操能力更是欠缺。这时候,你就需要这份超适合小白入门的Python教程了,本教程不仅提供Python基础学习,还能够同时进行代码实操,遇到问题还能互动答疑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值