Python操作文本
os模块
- 日常操作文件
- 许多时候并不是操作有困难,而是路径问题
import os
file="d:\\python_project"
#判断文件夹是否存在
if not os.path.exists(file):
#不存在则创建
os.mkdir(file)
import os
filename=os.getcwd()
txt="python.txt"
with open(os.path.join(filename,txt),'w') as f:
f.write("hello world")
简化起文件名
import uuid
from uuid import UUID
#基于时间戳
print(uuid.uuid1())
#基于名字的MD5散列
print(uuid.uuid3(UUID(int=9),"lyy"))
#基于随机数
print(uuid.uuid4())
#基于名字的SHA-1散列
print(uuid.uuid5(UUID(int=9),"lyy"))
Python操作文本
- r 读文件
- w 创建文件,会覆盖源文件
- a 追加文件,不存在会创建****
- b 操作二进制流
- ±rw的集合
当 for 循环不得不写在 writer 函数之外的时候使用 a+ 替代 w 避免覆盖写。
with open("test.txt",'r') as f:
data=f.read()#全部读取
data2=f.readlines()#逐行读取
for d in data2:
print(d)
import requests,uuid
def get_img(url):
img=requests.get(url,stream=True) #以流形式
img_name="{}.jpg".format(uuid.uuid4())
with open(img_name,'wb') as f:
chunks=img.iter_content(chunk_size=128)
for chunk in chunks:
f.write(chunk)
if __name__='__main__':
url='www.baidu.com'
get_img(url)
'''
避免一次性占满内存减轻CPU压力,在读取大文件时候很有优势
当下载大的文件的时候,建议使用strea模式.
默认情况下是false,他会立即开始下载文件并存放到内存当中,倘若文件过大就会导致内存不足的情况.
当把get函数的stream参数设置成True时,它不会立即开始下载,当你使用iter_content或iter_lines
遍历内容或访问内容属性时才开始下载。需要注意一点:文件没有下载之前,它也需要保持连接。
转载至:https://www.cnblogs.com/nul1/p/9172068.html
'''
JSON
JSON(javascript object notation)是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
import json
data={
'name':'acme',
'shares':100,
'price':542.23
}
res=json.dumps(data) #字典转换成JSON
print(res)
import json
data={
'name':'acme',
'shares':100,
'price':542.23
}
with open('data.json','w') as f:
json.dump(data,f)
import json
data='{"name":"ACME",'\
'"shares":100'\
'"price":542.23}'
res=json.loads(data)
print(res) #JSON转Python
import json
with open('data.json','r') as f:
data=json.load(f)
Python操作csv
逗号分隔值,其文件以纯文本形式存储表格数据(数字和文本),机械学习常用。
import csv
def get_csv():
with open('./test.csv',encoding='utf8') as f:
f_csv=csv.reader(f)
#next(f_csv)
for row in f_csv:
print(row)
import csv
headers=['symbol','price','date']
rows=[('AA',39.48,'6/11/2007')]
with open('stocks.csv','w') as f:
f_csv=csv.writer(f)
f_csv.writerow(headers)
f_csv.writerows(rows)
csv读写字典
import csv
with open('stocks.csv') as f:
f_csv=csv.DictReader(f)
for row in f_csv:
print(row)
import csv
headers=['symbol','price','data']
rows=[{}{}{}]
with open('stocks.csv','w') as f:
f_csv=csv.DictWriter(f,headers)
f_csv.writeheader()
f_csv.writerows(rows)
Python操作Excel
pip install xlrd xlwt
import xlwt
def creat():
#创建Excel
Excel_book=xlwt.workbook()
#创建sheet
sheet=Excel_book.add_sheet("test")
#在二行一列写入文字"hello"
sheet.write(1,0,"hello")
Excel_book.save("test.xls")
create()
import xlrd
def get_data():
data=xlrd.open_workbook('data.xls')
#获取第一个sheet
sheet=data.sheets()[0]
#获取行数和列数
nrows=sheet.nrows
ncols=sheet.ncols
获取行数据
for i in range(nrows):
print(sheet.row_values(i))
#获取列数据
for j in range(ncols):
print(sheet.col_values(j))
get_data()
Python操作Word
pip install python-docx