python库处理xls文件【csv、pyhttp类似需求记录】

该博客主要介绍了如何使用Python进行CSV与Excel文件的相互转换,包括使用pandas库的read_excel和to_csv方法。此外,还展示了如何从CSV文件中提取含有HTTP链接的数据,并对这些链接进行处理,通过发送GET请求获取信息。整个流程包括数据的读取、转换、处理和写回CSV文件。
摘要由CSDN通过智能技术生成
# https://www.cnblogs.com/superhin/p/11455240.html
# https://blog.csdn.net/birdflyinhigh/article/details/79685019
# https://www.cnblogs.com/xzjf/p/9339674.html
import csv
import pandas as pd
from urllib import request
import json
import copy
import time


# csv和xls的相互转换
def xls_to_csv():
    data_xls = pd.read_excel('image.xlsx', index_col=0)
    data_xls.to_csv('1.csv', encoding='utf-8')


def csv_to_xlsx_pd():
    csv = pd.read_csv('my.csv', encoding='utf-8')
    csv.to_excel('my.xlsx', sheet_name='data')


# csv转list
def csv_to_list():
    f = open("1.csv", 'r')
    csvreader = csv.reader(f)
    final_list = list(csvreader)
    return final_list



def fetch_data(url):
    req = request.Request(url)  # 请求url(GET请求)
    with request.urlopen(req) as f:  # 打开url请求(如同打开本地文件一样)
        return json.loads(f.read().decode('utf-8'))  # 读数据 并编码同时利用json.loads将json格式数据转换为python对象


def deal_list(csv_list):
    new_csv_list = []
    i = 0
    for row in csv_list:
        cur_item = []
        for each in row:
            cur_item.append(each)
            # 如果这个元素满足条件,在这里条件是一个http链接。
            if each[:4] == "http":     
                value = get_quality(each[each.rfind("url=") + 4:])
                cur_item.append(value)
        # 深拷贝
        new_csv_list.append(copy.deepcopy(cur_item))
        # 睡眠1s
        time.sleep(1)
        print("第" + str(i) + "行正在处理完成****************")
        i += 1
    return new_csv_list

# 串联整个流程
def write_to_csv():
    xls_to_csv()
    dest_csv = csv_to_list()
    rows = deal_list(dest_csv)
    with open('my.csv', 'w+', newline='') as csv_file:
        writer = csv.writer(csv_file)
        for row in rows:
            writer.writerow(row)


def get_quality(name):
    url = 'www.baidu.com?name' + name
    data = fetch_data(url)
    for v in data["result"].items():
        if "blur_quality" in v[1]:
            value = v[1]["blur_quality"]["blur"]
        else:
            value = "no value"
    return value
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值