认识jupyter
1、基于web的在线编辑器
2、可交互式
3、.ipynb文件分享
4、支持markdown
pycharm社区版
1、集成开发环境
2、官网下载地址:https://www.jetbrains.com/pycharm/download/#section=windows
pycharm的安装教程参照:
python学到死—第二讲 python基础、python3.6安装、pip工具的使用、pycharm简介、安装、配置
https://blog.csdn.net/yangyusir/article/details/114692760
常用的本地文件格式
1.打开文件
2.文件操作(读写)
3.关闭文件
示例
'''
TXT文件操作
1.打开文件
file = open(filename, mode)
filename 文件名
mode 模式(打开文件的模式)
r read 只读模式 文件不存在,程序报错
w write 只写模式 文件不存在,程序会创建一个文件出来,程序正常
a append 追加模式 文件不存在,程序会创建一个文件出来,程序正常
2.文件操作(读写)
2.1 读操作
file.read() 读取全部文件
file.readline() 读取一行
file.readlines() 返回列表
2.2 写操作
file.write() 写,会覆盖原来的内容
3.关闭文件
file.close()
'''
# file = open('demo.txt', 'r') # 文件不存在报错FileNotFoundError: [Errno 2] No such file or directory: 'demo.txt'
file = open('demo.txt', 'a') # 文件不存在,程序会创建一个文件出来,程序正常
# print(file.readable()) # False 判断文件是否可读 当前是以追加写的方式打开文件所以不可读
file.close() # 关闭文件
file = open('demo.txt', 'a')
# print(file.readable()) # True 可读
# print(file.read()) #读取全部文件
# print(file.readline()) # 读取一行
# print(file.readlines()) # 读取多行
file.close()
file = open('demo.txt', 'w')
file.write('yangyu changes the world') # 会覆盖原来的内容
file.close()
file = open('demo.txt', 'a')
file.write('\nHe is a king of the world') # 追加方式写入
file.close()
# 上下文管理器
with open('test1.txt', 'w', encoding='utf-8') as f:
f.write("人生苦短 我用Python")
with open('test1.txt', 'r', encoding='utf-8') as f:
data = f.read()
print(data) # 人生苦短 我用Python
{
“name”:“json”,
“age”:25,
“address”:{
“city”:“CSC”,
“postalCode”:2001
},
“phoneNumber”:{
“type”:“home”,
“number”:“292-666-999”
}
}
JSON文件写操作
写入文件 json.dump()
写入字符串变量 json.dumps()
JSON文件读操作
从文件读取 json.load()
从字符串变量读取 json.loads()
'''
Json文件操作
写操作
json.dump 写入文件
json.dumps 写入字符串变量
读操作
json.load 从文件读取
json.loads 从字符串中读取
'''
import json
str1 = 'yangyu'
json.dump(str1, open('json.txt', 'w')) # 打开json.txt,显示"yangyu"
str2 = json.dumps(['yangyu', {'age': 18}])
print(str2) # ["yangyu", {"age": 18}]
p1 = json.load(open('json.txt', 'r'))
print(p1) # yangyu
p2 = json.loads(str2)
print(p2) # ['yangyu', {'age': 18}]
以纯文本形式存储的表格数据(以逗号作为分隔符),通常第一行为列名
CSV文件写操作
import csv
with open(“demo.csv”, “w”, newline="") as datacsv:
csvwriter = csv.writer(datacsv, dialect=(“excel”))
csvwriter.writerow([“A”, “B”, “C”, “D”])
CSV文件读操作
import csv
rf = open(‘demo.csv’,‘r’)
reader = csv.reader(rf)
print(next(reader))
for i in reader:
print(i)
示例
'''
CSV文件操作
写操作
'''
import csv
# newline 新行,默认是None
with open('demo.csv', 'w', newline='') as data_csv:
# dialect 默认打开的方式是excel
csv_writer = csv.writer(data_csv, dialect='excel')
csv_writer.writerow(['a', 'b', 'c'])
csv_writer.writerow(['a1', 'b1', 'c1'])
'''
CSV文件操作
读操作
'''
f = open('demo.csv')
reader = csv.reader(f)
print(reader) # <_csv.reader object at 0x0000000002646128>
# 生成器
print(next(reader)) # ['a', 'b', 'c']
print(next(reader)) # ['a1', 'b1', 'c1']
# print(next(reader)) # 抛出异常StopIteration
# 用for循环打开不会抛出异常
for i in reader:
print(i)
'''
['a', 'b', 'c']
['a1', 'b1', 'c1']
'''
import pandas as pd
df = pd.read_csv("demo.csv")
print(df)
'''
a b c
0 a1 b1 c1
'''
print(df.head()) # 预览数据,默认前五行
'''
a b c
0 a1 b1 c1
'''
data = df.head()
data.to_csv('demo1.csv', index=False) # index默认是True,False就是去掉索引 打开demo1.csv,里面就没有0
Excel文件
Excel和CSV区别:
1.都可以Excel程序打开
2.Excel除了文本,数据也可以包含图表、样式等
3.CSV每条记录都存储为一行文本文件,每一条新行都表示一个新的数据记录
'''
excel文件操作
文件读取
'''
import xlrd # xl read
book = xlrd.open_workbook('1.xls')
# print(book) #
# 获取第一个sheet
sheet = book.sheet_by_index(0)
# print(sheet) # Sheet 0:
print(sheet.nrows) # 2
# 行 列 从零开始
print(sheet.cell(1, 0)) # text:'杨yu'
print(sheet.cell(0, 1)) # text:'age'
print(sheet.row(1)) # [text:'杨yu', number:18.0]
print(sheet.row(0)) # [text:'name', text:'age']
'''
excel文件操作
文件写入
'''
import xlwt # xl write
book1 = xlwt.Workbook()
w_sheet = book1.add_sheet('sheet1')
w_sheet.write(0, 0, label='name')
w_sheet.write(0, 1, label='age')
book1.save('demo2.xls')
'''
excel文件操作
文件读取
'''
import pandas as pd
data = pd.read_excel('demo2.xls')
print(data)
'''
Empty DataFrame
Columns: [name, age]
Index: []
'''
json请求地址:http://gamehelper.gm825.com/wzry/hero/list
'''
爬取王者荣耀英雄头像
json请求地址:http://gamehelper.gm825.com/wzry/hero/list
'''
import requests
import json
hero_url = 'http://gamehelper.gm825.com/wzry/hero/list'
def download():
# 下载头像
res = requests.get(hero_url).json()
# print(res)
# print(type(res)) #
for item in res['list']:
print(item)
hero_name = item['name']
hero_image = item['cover']
img = requests.get(hero_image).content
path = './%s.png' % hero_name
with open(path, 'wb') as f:
f.write(img)
if __name__ == '__main__':
download()