python自动化办公

从简化办公开始学习Python

更多内容可以关注我的博客
相应资源已经放出来了,如果不会编码的朋友可以直接下载相应资源,或者问我要打包好的工具
Excel表格操作函数包 可用于调用操作表格内容
word文档处理器源码 可按需修改
word文档处理器exe不会编码可直接使用

这篇文章整理自我以前写的一些脚本工具,可能篇幅会比较长,内容比较枯燥,大家可以按需复制。

主要包含以下五个内容:【批量改名】【转译json】【销售预测】【表格汇总】【批量录单】

批量改名

可能在我们的某些工作中,会需要将收集到的资源进行改头换面(改名),那如果一个个的去改无疑是繁琐且浪费时间的。

在这里学会一点简单的python,能大大简化这个过程,毕竟工具写好一劳永逸。

import os
import sys
#把名字中的A换成B
def chang(name,A,B):
    new=name.replace(A,B)
    return new
#获取路径
#lujing = '"'+input('请输入要批处理修改文件名的所有文件所在路径:')+'"'
lujing =input('请输入要批处理修改文件名的所有文件所在路径:')
A = input('请输入文件名中需要批处理变动的部分:')
B = input('请输入想要将这部分替换为:')
path = u''+lujing

filelist = os.listdir(path)  # 该文件夹下所有的文件(包括文件夹)
for i in range(0,len(filelist)):  # 遍历所有文件
    files = str(filelist[i])
    Olddir = os.path.join(path, files)  # 原来的文件路径
    if os.path.isdir(Olddir):  # 如果是文件夹则跳过
        continue
    filename = os.path.splitext(files)[0]  # 获取文件名
    # 把列表转换成没有间隔的字符串,因为文件名要以字符串形式存在
    filenameToStr =''.join(filename)
    filename1 = chang(filenameToStr, A, B)
    filetype = os.path.splitext(files)[-1]  # 文件扩展名
    Newdir = os.path.join(path, filename1 + filetype)  # 新的文件名
    os.rename(Olddir, Newdir)  # 重命名
    sys.stdout.write('\r[ === [%d/%d] %d%% === ]' % ((i + 1),len(filelist), int((i + 1) / len(filelist) * 100)))

转译json

做运营的朋友,对wetool这款用于社群管理的工具(现在好像不能用了),应该并不陌生。

但是有个问题,用它导出来的好友列表,是不能直接可读的json文件,更不要说方便的进行筛选了。

那么这里教大家用python来解决这个问题。将json文件变成可操作性较好的表格文件。

#coding:utf-8
#把特定的字符串写入特定路径按特定名和格式保存
def save(who,lujing,name):
    baocunming = str(name)
    LUJING_NEW1 = lujing + '\\' + baocunming + '.xlsx'
    LUJING_NEW2 = lujing + '\\' + baocunming + '.txt'
    f = open(LUJING_NEW1, 'w',encoding='utf-8')
    f.write(who)
    f.close()
    f = open(LUJING_NEW2, 'w', encoding='utf-8')
    f.write(who)
    f.close()

#1.提示输入要操作的文件路径及文件名
rule = input('请输入文件所在路径:')
name = input('请输入文件名(注意 本程序只可以处理json文件):')

OK = rule+'\\' +name+'.json'
#C:\Users\admi\Desktop\Python_test
#黑名单
import json
with open(OK,'rb') as ok:
    A = json.load(ok)
news = ''
heard = {}
for a in A:
    for p, q in a.items():
        heard[p] = str(p)
heards = []
for p, q in heard.items():
    news = news + str(p) + '\t'
    heards.append(str(p))
news = news + '\n'
for a in A:
    one = ''
    lines = []
    for p, q in a.items():
        lines.append(str(p))
    for i in heards:
        if i not in lines:
            one = one + ''+ '\t'
        else:
            one = one + str(a[i]) + '\t'
    #print(one)
    news = news + one + '\n'
save(news,rule,name)
input('操作结束 回车退出 在源文件路径中查看')

销售预测

如果是做商品企划管理,或者销售相关岗位的朋友,可能在年度季度计划的时候,通常要进行一个复杂的计算过程:销售预测安排销售计划

这里也给大家提供一个销售预测的解决方法

import os                                                                                #导入os模块
import os.path                                                                           #导入os.path模块
import xlrd                                                                              #导入第三方库xlrd
import re
import sys                                                                               #导入sys模块
import glob                                                                              #导入glob模块
#读取单个表格为字典
def read_oneExcel_in(lujing,wenjian_name,geshihouzhui,yemian=0):
    suoying = lujing + '\\' + wenjian_name + '.' + geshihouzhui
    jian = wenjian_name
    WENJIAN = xlrd.open_workbook(suoying)  # 打开文件
    YE = WENJIAN.sheets()[yemian]  # 通过索引顺序获取锁定第一页
    # 获取数据范围(行数和列数)
    Hang = YE.nrows  # 获取行数
    Lie = YE.ncols  # 获取列数
    jian = {}  # 声明存放字典的值也是字典
    # 遍历列表
    for hang in range(0, Hang):  # 遍历行数
        zhushi_hang = ('第' + str(hang + 1) + '行')  # 形成行书签
        jian[zhushi_hang] = {}  # 每一行作为一个字典
       for lie in range(0, Lie):  # 遍历列数
            YE_00 = re.split(r"text:'|'", str(YE.cell(hang, lie)))  # 提取表格关键信息
            for ccc in YE_00:  # 遍历提取信息形成的过渡列表
                if ccc != '':  # 剔除列表里面的无关值
                   zhushi_lie = ('第' + str(lie + 1) + '列')  # 形成列书签
                   if ccc == 'empty:':
                        ccc = ''
                   if 'number:' in ccc:
                        xxx_long = ccc.index('.')
                        ccc = int(ccc[7:xxx_long])
                    if 'xldate:' in str(ccc):
                        xxx_long_ = str(ccc).index('.')
                        ccc = int(str(ccc)[7:xxx_long_])
                    jian[zhushi_hang][zhushi_lie] = ccc
    return jian
#在单独表字典中单独读取某列为列表
def get_line_excel(biao_zidian,lie_num):
    key = []
    lie_liebiao = []
    for a in biao_zidian.keys():
        key.append(a)
    for key_i in key:
        #biao_zidian[key_i]['第' + str(lie_num) + '列']
        lie_liebiao.append(str(biao_zidian[key_i]['第'+str(lie_num)+'列']))
    return lie_liebiao
#以一定周期对列表输出移动求和的值列表
def SUM_T_yidong(Y,T):
    SUM_T = []
    for num_1 in list(range(1, len(Y) + 1 - T)):
        Sum_1 = sum(Y[num_1:num_1 + T])
        SUM_T.append(Sum_1)
    return SUM_T
#按照给定的周期,返回周期内累计求和值列表
def Fenduan_Sum(Y,T):
    Fenduan_SUM = []
    for i in list(range(0, len(Y))):
        sum_1 = Y[int(int(i / T) * T):i + 1]
        SUM = sum(sum_1)
        Fenduan_SUM.append(SUM)
    return Fenduan_SUM
#如果只有一组Y,only_Y来计算得到方程系数,给出需要预测的步长,如预测未来N个周期的Y值,则返回预测值列表
def oneline_huigui_only_Y_yuce(Y,yuce_after_num):
    X=list(range(1,len(Y)+1))
    X_pingjun = sum(X) / len(Y)
    Y_pingjun = sum(Y) / len(Y)
    Sum_1 = []  # 放Xi*Yi
    Sum_2 = []  # 放Xi*Xi
    for n in list(range(0, len(Y))):
        sum_1 = X[n] * Y[n]
        Sum_1.append(sum_1)
        sum_2 = X[n] * X[n]
        Sum_2.append(sum_2)
    b = (sum(Sum_1) - len(Y) * X_pingjun * Y_pingjun) / (sum(Sum_2) - len(Y) * X_pingjun * X_pingjun)
    a = Y_pingjun - b * X_pingjun
    #print('一元线性回归公式:Y='+str(b)+'X+'+str(a))
    Yuce = list(range(len(Y)+1,len(Y)+yuce_after_num+1))
    Yucezhi = []
    for yuce_X_num in Yuce:
        Y_yuce = b*yuce_X_num+a
        Yucezhi.append(Y_yuce)
    return Yucezhi
#把列表写入字典的第几行
def biao_write_zidian_hang(zidian,biao,hangshu):
    zidian['第'+ str(hangshu)+ '行']={}
    for i in list(range(0,len(biao))):
        zidian['第' + str(hangshu) + '行']['第' + str(i+1) + '列'] = biao[i]
#把表格字典转化成表格样式的一整个字符串 返回字符串
def write_excel(A):                                                                      #创建一个转换字典为特定字符表的函数
   for B,C in A.items():                                                                #遍历表字典内的行:列键值对
       Hang = int(len(A))                                                               #获得行数
       Lie  = int(len(C))                                                               #获得列数
       Lie_Biao = []                                                                    #创建中转列:值对的列表
       Zuizhong = []                                                                    #创建最终所有列值对字符串列表
       for hhh in A.values():                                                           #遍历表中的列字典
           for lll in hhh.values():                                                     #遍历列字典的值
                Lie_Biao.append(str(lll))                                                #把值字符串化添加到值列表
       for hangshu in range(0, Hang + 1):                                               #定义行数为跳转步长
           guodu = Lie_Biao[hangshu * Lie:hangshu * Lie + Lie]                          #定义按每行转化成过渡切片
           jiange_1 = '\t'                                                              #定义一个制表符
           meiyihang = jiange_1.join(guodu)                                             #用制表符来连接切片中的每一列
            Zuizhong.append(meiyihang)                                                   #把由每一列连起来的每一行添加到最终列表
       jiange_2 = '\n'                                                                  #定义一个换行符
       zhenggebiao = jiange_2.join(Zuizhong)                                            #用换行符来连接最终列表内每个行元素
       return zhenggebiao                                                               #返回一个表示整个表的字符串
#把特定的字符串写入特定路径按特定名和格式保存
def save_excel(baocunduixiang,wenjianjialujing,baocunming,geshihouzhui):
    baocunming = str(baocunming)                                                         #指定保存名
    LUJING_NEW = wenjianjialujing + '\\' + baocunming + '.'+ geshihouzhui                #拼装最终路径
    f = open(LUJING_NEW, 'w')                                                            # 在目的路径声明一个文件及格式并打开
    f.write(baocunduixiang)                                                              # 把处理好的信息写入这个文件
    f.close()                                                                            # 关闭写入操作
#0.导入三年的销售数据
print('——————请单列导入需要处理的数据——————')
lujing = input('输入数据所在文件夹路径:')
wenjian_name = input('输入数据所在的表格文件名:')
baocun_name = str(wenjian_name + '_预测报告')
geshihouzhui = input('输入该表格文件的格式后缀xls/xlsx/csv:')
shuju = read_oneExcel_in(lujing,wenjian_name,geshihouzhui)#导入数据
suozailie =input('确认数据在导入的第几列:')
sannian_ = get_line_excel(shuju,suozailie)
#print(sannian)
del sannian_[0]#剔除表头
#print(sannian)
sannian = []
for a in sannian_:#数据标准格式化
    a_ = float(a)
    sannian.append(a_)


#1.计算三年中后两年的移动求和:根据数据选取周期,日数据周期为365,周数据周期为52,月数据周期为12
T = int(input('数据的时间跨度是?日数据周期为365,周数据周期为52,月数据周期为12:'))
Last_two_years_yidong_Sum = SUM_T_yidong(sannian,T)
print("后两年移动求和值:")
print(Last_two_years_yidong_Sum)

#2.计算后两年按照年为周期的累加数值
#2.1切割列表
Last_two_years = sannian[T:]

Last_two_years_fenduan_sum = Fenduan_Sum(Last_two_years,T)
#2.2得到分段累加值列表
print("后两年各期分段累加值:")
print(Last_two_years_fenduan_sum)


#3.生成移动求和的预测值,预测一整年
weilai_one_year = oneline_huigui_only_Y_yuce(Last_two_years_yidong_Sum,T)
print("预测未来一年每期的移动求和值:")
print(weilai_one_year)

#4.根据未来一年的移动求和值反向递减出未来一年每个周期的值
meiyue = []
for a in weilai_one_year:
    meiyue.append(a)
for i in range(1,T):#先减去去年
meiyue[i-1] = meiyue[i-1]-sum(sannian[-T+i:])
#print(meiyue)
for i in list(range(1,T)):#在减去预测年每月累加值
meiyue[i] = meiyue[i]- sum(meiyue[:i])
print("预测未来一年每期值:")
print(meiyue)

weilai_one_year_fenduan_sum = Fenduan_Sum(meiyue,T)
print("未来一年各期分段累加值:")
print(weilai_one_year_fenduan_sum)

Yidong_two_and_one = ['两年加预测移动求和项'] + Last_two_years_yidong_Sum + weilai_one_year
geqileiji_two_and_one = ['两年加预测各期累加项'] +Last_two_years_fenduan_sum + weilai_one_year_fenduan_sum
two_and_one =['两年加预测各期值'] + Last_two_years + meiyue
meiyue_yuce = ['预测未来一年每期值']+meiyue

Zong = {}
biao_write_zidian_hang(Zong,Yidong_two_and_one,1)
biao_write_zidian_hang(Zong,geqileiji_two_and_one,2)
biao_write_zidian_hang(Zong,two_and_one,3)
biao_write_zidian_hang(Zong,meiyue_yuce,4)

#for a,b in Zong.items():
    #print(a,b)
YUCE = write_excel(Zong)

print(YUCE)

houzhui = input("输入保存格式后缀:")

save_excel(YUCE,lujing,baocun_name,houzhui)

表格汇总

经常和表格打交道的选手们,应该对表格汇总并不陌生,复制粘贴用的很熟练,但是速度和繁琐程度还是比较麻烦。

这里可以考虑用python来解决问题

#昨天写的读取一个文件的函数
def read_oneExcel_in(lujing):
    import xlrd
    import re
    WENJIAN = xlrd.open_workbook(lujing)  # 打开文件
YE = WENJIAN.sheets()[0]  # 通过索引顺序获取锁定第一页
    # 获取数据范围(行数和列数)
Hang = YE.nrows  # 获取行数
Lie = YE.ncols  # 获取列数
jian = {}  # 声明存放字典的值也是字典
    # 遍历列表
for hang in range(0, Hang):  # 遍历行数
zhushi_hang = ('第' + str(hang + 1) + '行')  # 形成行书签
jian[zhushi_hang] = {}  # 每一行作为一个字典
for lie in range(0, Lie):  # 遍历列数
YE_00 = re.split(r"text:'|'", str(YE.cell(hang, lie)))  # 提取表格关键信息
for ccc in YE_00:  # 遍历提取信息形成的过渡列表
if ccc != '':  # 剔除列表里面的无关值
zhushi_lie = ('第' + str(lie + 1) + '列')  # 形成列书签
if ccc == 'empty:':
                        ccc = ''
if 'number:' in ccc:
                        xxx_long = ccc.index('.')
                        ccc = int(ccc[7:xxx_long])
                    if 'xldate:' in str(ccc):
                        xxx_long_ = str(ccc).index('.')
                        ccc = int(str(ccc)[7:xxx_long_])
                    jian[zhushi_hang][zhushi_lie] = ccc
    return jian
lujing = 'F:\PYTHON\BISU\第四课\数据'
#geshi = input('你要汇总的格式是xls、xlsx?:')
geshi = 'xlsx'
path = u''+lujing
import os
HOME = []              #我们创建了一个列表,用来装载我们获取到的路径
filelist = os.listdir(path)  # 该文件夹下所有的文件(包括文件夹)
for i in range(0,len(filelist)):  # 遍历所有文件
files = str(filelist[i])
    Olddir = os.path.join(path, files)  # 原来的文件路径
if os.path.isdir(Olddir):  # 如果是文件夹则跳过
continue
    if geshi in files:
        HOME.append(lujing+'\\'+files)   #把路径放到
ALL = []         #我们创建了一个列表用来装载获得的所有表格的数据
#用for遍历HOME逐一获取路径,冒号别少了
for i  in HOME:
    #调用昨天写好的读取一个表格的函数
ALL.append(read_oneExcel_in(i))

#创建一个变量装最后要输出的内容
OK = ''
#因为ALL是列表,所以我们看信息的时候遍历出来会更加的容易阅读
for i in ALL:
    #因为我们写的读取表格后的数据是字典,所以用字典的遍历方式.items()会更便于阅读
for a,b in i.items():
        for c,d in b.items():
            OK = OK + str(d) +'\t'
OK = OK + '\n'
print(OK)
input('暂停|回车写出')

xie = open(lujing+'\\' + 'ADD_ALL.xlsx' , 'w',encoding='utf-8')       # 在目的路径声明一个文件及格式并打开
xie.write(str(OK))                             # 把处理好的信息写入这个文件
xie.close()                                    # 关闭写入操作

批量录单

之前有个做贸易的朋友问我,有没有办法批量录单。

他每天都要花上几个钟,来填一些固定的表单:供应商、联系方式、物流编号之类的……

每天同样的重复性工作,除了耗时间,效率低下之外,还会有复制错的情况存在。

长期以往之下,视力从5.0到3.0不是梦想。

当然,我觉得简单重复的事情交给机器做是最靠谱的。

第一是效率快,几分钟不到完成你几个钟的工作。

第二是准确性高,除非有BUG,否则基本上不存在看错、误操作之类的低级错误。

import os                                                                                #导入os模块
import os.path                                                                           #导入os.path模块
import xlrd                                                                              #导入第三方库xlrd
import re
import sys                                                                               #导入sys模块
import glob                                                                              #导入glob模块
#读取路径内同格式EXCEL为四级字典文件名(表名(行数(列数(值))))返回字典
def read_lujing_in(wenjian_lujing,houzhuichangdu,houzhuiming):                            #创建一个获取文件夹内xls格式文件路径的函数
houzhuichangdu = int(houzhuichangdu)
    houzhuiming = str('.'+ houzhuiming)
    wenjian_name = []                                                                    #创建一个空列表用来装载获取的路径
    for lujing,mingcheng,wenjianmings in os.walk(wenjian_lujing):                        #从os获取的信息中遍历路径,名称,文件名
        # 把指定后缀长度为指定后缀名的文件名找出来赋给文件名
        wenjianmings = filter(lambda wenjianming:wenjianming[-(houzhuichangdu+1):] == houzhuiming,wenjianmings)
        wenjianmings = map(lambda wenjianming:os.path.join(lujing,wenjianming),wenjianmings)#把文件名拼接到文件夹路径形成新的文件名
        wenjian_name.extend(wenjianmings)                                                #把生成的文件名放进路径列表
    a001 = wenjian_lujing                                                                #用a001传递路径
    a002 = len(a001)+1                                                                   #计算路径的字符长度
    b001 = houzhuichangdu                                                                #用b001传递后缀长度
    b002 = int(b001) + 1                                                                 #真实后缀包括.占一位
    cunfang = {}                                                                         #用一个字典存放数据
    for a_i in range(0, len(wenjian_name)):                                              #遍历由文件数组成的数组
        jian = wenjian_name[a_i][len(a001) + 1:-b002] + '_new'                           #编辑字典的键为新文件名
        WENJIAN = xlrd.open_workbook(wenjian_name[a_i])                                  # 打开文件
        YE = WENJIAN.sheets()[0]                                                         # 通过索引顺序获取锁定第一页
        # 获取数据范围(行数和列数)
        Hang = YE.nrows                                                                  # 获取行数
        Lie = YE.ncols                                                                   # 获取列数
        cunfang[jian] = {}                                                               #声明存放字典的值也是字典
        # 遍历列表
        for hang in range(0, Hang):                                                      # 遍历行数
            zhushi_hang = ('第' + str(hang + 1) + '行')                      # 形成行书签
            cunfang[jian][zhushi_hang] = {}                                              # 每一行作为一个字典
            for lie in range(0, Lie):                                                    # 遍历列数
                YE_00 = re.split(r"text:'|'", str(YE.cell(hang, lie)))                   # 提取表格关键信息
                for ccc in YE_00:                                                        # 遍历提取信息形成的过渡列表
                    if ccc != '':                                                        # 剔除列表里面的无关值
                       zhushi_lie = ('第' + str(lie + 1) + '列')            # 形成列书签
                       if ccc == 'empty:':
                                ccc = ''
                       if 'number:' in ccc:
                                xxx_long = ccc.index('.')
                                ccc = int(ccc[7:xxx_long])
                            cunfang[jian][zhushi_hang][zhushi_lie] = ccc
return cunfang        #返回这个字典



#改变指定字典内的指定表格字典的指定行列的最终值 执行操作不返回
def change(cunfang_name,wenjian_name,hang,lie,change_zhi):                               #创建一个修改指定行列为特定值的函数
    hang = ('第' + str(hang) + '行')                                                     #创建按第几行为行注释的索引
    lie = ('第' + str(lie) + '列')                                                       #创建按第几列为列注释的索引
    change_zhi = str(change_zhi)                                                         #指定修改值
    cunfang_name[wenjian_name][hang][lie] = change_zhi                                   #把特定文件下的表的某行某列换为某值
#把表格字典转化成表格样式的一整个字符串 返回字符串
def write_excel(A):                                                                      #创建一个转换字典为特定字符表的函数
    for B,C in A.items():                                                                #遍历表字典内的行:列键值对
        Hang = int(len(A))                                                               #获得行数
        Lie  = int(len(C))                                                               #获得列数
        Lie_Biao = []                                                                    #创建中转列:值对的列表
        Zuizhong = []                                                                    #创建最终所有列值对字符串列表
        for hhh in A.values():                                                           #遍历表中的列字典
            for lll in hhh.values():                                                     #遍历列字典的值
                Lie_Biao.append(str(lll))                                                #把值字符串化添加到值列表
        for hangshu in range(0, Hang + 1):                                               #定义行数为跳转步长
            guodu = Lie_Biao[hangshu * Lie:hangshu * Lie + Lie]                          #定义按每行转化成过渡切片
            jiange_1 = '\t'                                                              #定义一个制表符
            meiyihang = jiange_1.join(guodu)                                             #用制表符来连接切片中的每一列
            Zuizhong.append(meiyihang)                                                   #把由每一列连起来的每一行添加到最终列表
        jiange_2 = '\n'                                                                  #定义一个换行符
        zhenggebiao = jiange_2.join(Zuizhong)                                            #用换行符来连接最终列表内每个行元素
    return zhenggebiao                                                               #返回一个表示整个表的字符串
#把特定的字符串写入特定路径按特定名和格式保存
def save_excel(baocunduixiang,wenjianjialujing,baocunming,geshihouzhui):
    baocunming = str(baocunming)                                                         #指定保存名
    LUJING_NEW = wenjianjialujing + '\\' + baocunming + '.'+ geshihouzhui                #拼装最终路径
    f = open(LUJING_NEW, 'w')                                                            # 在目的路径声明一个文件及格式并打开
    f.write(baocunduixiang)                                                              # 把处理好的信息写入这个文件
    f.close()                                                                            # 关闭写入操作
print("导入需要批处理的表格")
a001 = input("文件夹路径:")
c001 = input("所查找文件的格式后缀名:")
b001 = len(c001)

print("数据导入成功:")
A = read_lujing_in(a001,b001,c001)
for aa,bb in A.items():
    print(aa)
    print(write_excel(bb))

xuanze_1 = input("是否继续程序(no or 任意继续):")
if xuanze_1 == 'no':
    print('- - - END - - -')
else:
    print("导入修改模板"+"\n"+"(模版修改的坐标范围要在被修改表的坐标范围内)")
    a002 = input("文件夹路径:")
    c002 = input("所查找文件的格式后缀名:")
    b002 = len(c002)
    B = read_lujing_in(a002, b002, c002)  # 得到三元镶套的数据字典
for cc in B.values():
        print("导入修改模板成功:")
        print(len(cc))
        #显示修改模板以验证并遍历A进行修改
for c_i in range(2, len(cc)+1):
            LH = '第' + str(c_i) + '行'
L1 = str(cc[LH]['第1列'])
            L2 = str(cc[LH]['第2列'])
            L3 = str(cc[LH]['第3列'])
            L4 = str(cc[LH]['第4列'])
            print(LH, L1, L2, L3, L4)
            # 遍历A修改指定值
for aa_i in A.keys():
                if L1 in aa_i:
                    change(A, aa_i,L2,L3,L4)
    print("数据修改成功:")
    for aa, bb in A.items():
        print(aa)
        print(write_excel(bb))
    xuanze_2 = input("是否导出数据( no or 任意继续):")
    if xuanze_1 == 'no':
        print('- - - END - - -')
    else:
        LUJING = a002
        geshi = 'xlsx'
#把A内每个表都转化成列表字符串并输出文件
for BB, CC in A.items():
            zhenggebiao = write_excel(CC)
            #print(zhenggebiao)
save_excel(zhenggebiao,LUJING,BB,geshi)

input("导出成功|回车结束")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

isSamle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值