Colorama 颜色组合测试

跨平台色彩战争:termcolor与Colorama的技术路线对决 本文深入对比了Python中termcolor与Colorama两大库在跨平台命令行输出色彩渲染的技术路线。termcolor采用纯粹的ANSI序列实现,轻量高效但需手动处理Windows兼容性;Colorama通过运行时适配实现开箱即用的跨平台支持,特别适合需要兼容Windows的应用场景。文章通过性能测试和代码示例,为开发者提供了清晰的技术选型建议。 阅读详情

Fore和Back的顺序分别是

BLACK BLUE CYAN GREEN LIGHTBLACK_EX LIGHTBLUE_EX LIGHTCYAN_EX LIGHTGREEN_EX LIGHTMAGENTA_EX LIGHTRED_EX LIGHTWHITE_EX LIGHTYELLOW_EX MAGENTA RED WHITE YELLOW RESET

Style.BRIGHT

Style.DIM

Style.NORMAL

from colorama import Style, Fore, Back

str_colors = ['BLACK', 'BLUE', 'CYAN', 'GREEN', 'LIGHTBLACK_EX', 'LIGHTBLUE_EX', 'LIGHTCYAN_EX', 'LIGHTGREEN_EX',
              'LIGHTMAGENTA_EX', 'LIGHTRED_EX', 'LIGHTWHITE_EX', 'LIGHTYELLOW_EX', 'MAGENTA', 'RED', 'WHITE',
              'YELLOW', 'RESET']
str_styles = ['BRIGHT', 'DIM', 'NORMAL']
fore_colors = [Fore.BLACK, Fore.BLUE, Fore.CYAN, Fore.GREEN, Fore.LIGHTBLACK_EX, Fore.LIGHTBLUE_EX, Fore.LIGHTCYAN_EX,
               Fore.LIGHTGREEN_EX, Fore.LIGHTMAGENTA_EX, Fore.LIGHTRED_EX, Fore.LIGHTWHITE_EX, Fore.LIGHTYELLOW_EX,
               Fore.MAGENTA, Fore.RED, Fore.WHITE, Fore.YELLOW, Fore.RESET]
back_colors = [Back.BLACK, Back.BLUE, Back.CYAN, Back.GREEN, Back.LIGHTBLACK_EX, Back.LIGHTBLUE_EX, Back.LIGHTCYAN_EX,
               Back.LIGHTGREEN_EX, Back.LIGHTMAGENTA_EX, Back.LIGHTRED_EX, Back.LIGHTWHITE_EX, Back.LIGHTYELLOW_EX,
               Back.MAGENTA, Back.RED, Back.WHITE, Back.YELLOW, Back.RESET]
styles = [Style.BRIGHT, Style.DIM, Style.NORMAL]


for k in range(len(styles)):

    print(str_colors)
    color_str1 = styles[k]

    for j in range(len(back_colors)):

        color_str2 = color_str1 + back_colors[j]
        for i in range(len(fore_colors)):
            color_str2 = color_str2 + fore_colors[i] + 'ABC'

        color_str2 = color_str2 + Back.RESET + Fore.RESET + ' '
        print(color_str2)

Python终端彩色输出实战:从ANSI原理到colorama跨平台应用 在命令行界面开发中,提升输出信息的可读性与用户体验是常见需求。其核心原理基于ANSI转义序列,这是一套通过特殊字符控制终端文本显示格式的标准协议,能够实现文字颜色、背景色及样式的动态调整。这项技术的工程价值在于显著增强命令行工具、日志系统和脚本的交互清晰度与专业性。在实际应用场景中,开发者常借助Python的print函数嵌入ANSI码来实现彩色输出,但需注意跨平台兼容性问题。为此,colorama库成为关键解决方案,它自动处理不同操作系统终端的差异,确保颜色在Windows、macOS和Linux上一致显 阅读详情

相关推荐

PhoneSploit-Pro实战指南:Android渗透测试工具链整合与应用

Android Debug Bridge(ADB)作为Android开发与调试的核心工具,提供了设备与计算机间丰富的通信能力。其底层基于客户端-服务器架构,通过TCP/IP或USB协议实现命令执行、文件传输和应用管理。在安全领域,ADB的开放网络调试端口常成为移动设备渗透测试的入口点。结合Metasploit渗透测试框架,安全研究人员能够自动化生成Payload、建立反向连接,实现远程控制。这种技术整合在授权安全评估、漏洞验证和红队演练中具有重要价值,能高效验证Android设备因配置不当导致的安全风险。本

weixin_30887919的博客 470

python 清屏_Python常用模块介绍:colorama(为Terminal添加色彩)

今天介绍一个小巧、没什么大作用、但是好看的模块——colorama,它可以让你的Terminal呈现出丰富多彩的颜色。安装由于Python默认没有自带,需要额外安装。pip3installcolorama不能联网的,从下列网址下载源码。然后参照《python的模块module介绍》中介绍的离线、非管理员的安装方法。https://pypi.org/project/coloramah...

weixin_39793553的博客 3307

优化tqdm在Windows终端的多重进度条显示问题

本文针对tqdm在Windows终端中多重进度条显示混乱、频繁换行的问题,提供了系统性的解决方案。通过分析问题根源,详细介绍了使用`position`和`leave`参数、上下文管理器以及`colorama`库等方法来优化显示效果,确保进度条在Windows环境下也能稳定、清晰地分层展示,提升开发体验。

weixin_29057163的博客 358

Python之colorama

Python之colorama

PlutoZuo的博客 2516

Python colorama | 详解终端漂亮的彩色打印怎么实现的

Python | 详解终端漂亮的彩色打印怎么实现的

叶庭云 成为自己的光 4521

股票交易接口TDX量化下单接口

对于需要同时操作多只股票的投资者而言,这一功能可以一次性处理多个交易指令,大大提高了交易的效率。通过回测,投资者可以发现策略中的不足之处,进而进行优化和调整,提高策略的可靠性。根据通达信提供的安装指南,下载相应的安装程序并进行安装。这包括设置交易账户的相关信息,如账户名、密码等,以及连接到正确的交易服务器。不同的情况可能会有不同的标准,有的可能要求账户使用达到一定的时长,有的可能对账户内的资产金额有最低要求。可以通过接口提供的监控功能或者第三方工具,实时查看交易状态、交易数据等信息,确保交易按照预期进行。

2401_88470113的博客 1289

[Python库](2) Colorama库

Python库系列(2) Colorama库学习

apk__的博客 1153

打包可以在Hadoop 3.3.1和Hive 3.1.2上使用的Tez 0.10.1 minimal

编译打包可以在Hadoop 3.3.1和Hive 3.1.2上使用的Tez 0.10.1

qq_42013533的博客 2618

python常用库之colorama (python命令行界面打印怎么加颜色)

在Python开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,但是大量日志,有时不好定位问题。 使用终端打印特定颜色字符串,可以突出显示关键性的信息,帮助用户更好地识别和理解输出内容。

西京刀客 2285

AntV G6避坑指南:折叠树状图那些意想不到的BUG(附解决方案)

本文深入剖析了在React项目中使用AntV G6实现折叠树状图时,从图标错乱、数据同步到状态管理的常见BUG与解决方案。文章基于实战经验,详细解读了G6的内部机制,提供了从环境配置、自定义节点绘制到事件处理与性能优化的完整避坑指南,帮助开发者彻底解决折叠展开功能的疑难杂症。

wasm7browser的博客 256

【RT-DETR创新改进】改进前必看!对Ultralytics调参, 1:1还原RT-DETR官方版本实验参数,使用原汁原味的RT-DETR模型,才能高效跑实验、高效涨点、收割小论文、完成大论文!!!

本文针对Ultralytics训练RT-DETR精度不佳问题,提供参数配置优化方案。通过对比官方RT-DETR参数设置,详细指导如何修改Ultralytics版本的关键参数,包括优化器、学习率、权重衰减等6处配置调整。操作步骤涵盖default.yaml文件修改和trainer.py代码调整,确保模型收敛性能达到官方水平,帮助研究者快速提升实验效果。文末附官方源码链接和具体参数配置网址供参考。

Ai缝合怪、助力小伙伴高效发论文 1780

Python:终端打印字体颜色

日常开发中,经常需要打印显示各种信息。海量的信息堆砌在控制台中,就会导致各种信息都显示在一起,降低了重要信息的可读性。这时候,如果能给重要的信息加上差异的字体颜色,那么就会更加显眼,增加使用者可阅读性。Colorama是一个python专门用来在控制台、命令行输出彩色文字的模块,可以跨平台使用。3、termcolor模块:不推荐。

we chat:玩转测试开发 1645

vue-vben-admin 打包编译报错Failed to resolve entry for package “@vben-core/design“ 的解决方法

如果你在你是不是在 apps/子目录下执行了 build?# 项目根目录 pnpm build而不是在下面单独打包。这个问题本身不复杂,但非常容易被误导去“怀疑依赖、怀疑配置、怀疑人生”。实际上,只要理解vue-vben-admin 是 monorepo 架构,很多类似问题都会迎刃而解。如果你后面还遇到 vben-admin 的构建、部署、权限或性能相关问题,这一套思路都很有用。希望这篇记录,能帮你节省至少半小时的排坑时间。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 423

TikTok-ViewBot依赖库详解:tls_client、requests与colorama的应用

TikTok-ViewBot是一个基于Python开发的高效视图提升工具,采用轻量级设计,无需Selenium即可快速运行,支持自定义视图数量设置。本文将深入解析项目核心依赖库——tls_client、requests和colorama的功能与应用场景,帮助开发者更好地理解项目架构。 ## 核心依赖库概览 项目的依赖管理文件`requirements.txt`清晰列出了所有必要组件,其中三个核

gitblog_01415的博客 497

Android 13.0 开机启动优化之PMS扫描apk耗时相关功能优化

在android13.0的系统rom定制化开发中,在系统中开发产品时,会根据客户要求内置第三方app,这时如果内置app过多,或者安装的app过多,在系统开机的过程中 在pms扫描安装app的时候,就会比较耗时,这时候就需要优化下pms扫描安装app这块的功能代码,用多线程来实现pms扫描安装app,来加快开机时间,接下来 来实现这个功能

安卓兼职framework和app工程师的博客 1333

【嵌入式DIY实例-ESP32篇】-热成像仪

在本文中,我们将使用 MLX90640 热像仪和 1.8 英寸 ST7735 TFT 显示屏,构建一款基于 ESP32 的高性能紧凑型热像仪。本项目旨在打造一款便携、响应迅速的热像仪,具有增强的图像质量、优化的帧率和精准的温度读数。

视觉与物联智能 878

python的print加入颜色显示

【代码】python的print加入颜色显示。

easyboot的专栏 276

OKX 欧易 交易机器人开发基础

接口文档: https://www.okx.com/docs-v5/zh/#overview REST API 常用请求 查看账户余额 结果数据格式: 获取限价 结果格式: 获取指数行情 数据结构: 下单 结果数据: 获取未成交订单列表 返回结果: 撤单 结果结构:

Willin Wang 的全栈升级指南 2万+

Python 解决控制台输出颜色 (windows平台)

原文地址 简介 在python开发的过程中,经常会遇到需要打印各种信息。海量的信息堆砌在控制台中,就会导致信息都混在一起,降低了重要信息的可读性。这时候,如果能给重要的信息加上字体颜色,那么就会更加方便用户阅读了。 当然了,控制台的展示效果有限,并不能像前段一样炫酷,只能做一些简单的设置。不过站在可读性的角度来看,已经好很多了。 语法格式:\033[显示方式;前景色;背景色m 前景色 背景色 颜色 ----------------------------------------...

piglite的专栏 1572

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

哈哈!一个 print 函数,还挺会玩啊!

(点击上方快速关注并设置为星标,一起学Python)作者:HOLL4ND原文链接:https://www.kleinlam.space/%E5%8D%9A%E5%AE%A2/python/python-%E7%BB%88%E7%AB%AF%E8%BE%93%E5%87%BA%E9%A2%9C%E8%89%B2%E5%AD%97%E4%BD%93/在终端中,输出的字体总是单...

cainiao_python的博客 197

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Tornado 4.5.1 解析:`url_concat` 的 None 参数语义回归修复与彩色日志检测改进

Tornado 4.5.1 是紧随 4.5.0(2017 年 4 月 16 日发布)之后的一个补丁版本,于 2017 年 4 月 20 日发布。它只包含两个模块的针对性修复:`tornado.log` 改进了彩色日志对底层库的检测逻辑,`tornado.httputil` 让 `.url_concat` 重新把 `None` 当作"空参数序列"处理。本文结合当前仓库源码,逐一还原这两处变更的来龙去

gitblog_01184的博客 394

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ANSI 转义序列实战指南 - 打造炫彩终端日志与交互界面

本文深入解析ANSI转义序列的核心原理与应用,指导开发者通过控制终端颜色、光标移动等属性,实现日志分级染色、动态进度条及交互式菜单。实战代码演示了如何打造专业、易读的命令行工具界面,显著提升开发与调试效率。

algae的博客 495

Python打造节日祝福特效:以春节为例

本文详细介绍了如何使用Python编程语言,结合colorama库在终端中创建春节祝福特效。从环境搭建、静态彩色春联设计,到闪烁、逐字打印、颜色渐变等动态效果实现,手把手教你打造个性化、富有技术感的节日祝福程序,让代码传递温暖与趣味。

zeta9的博客 221

3分钟用Python打造独一无二的数字生日礼物

还在为生日祝福缺乏创意而烦恼吗?Python生日祝福动画让技术爱好者用代码表达心意,将冰冷的终端变成温馨的祝福舞台。这个开源项目让你告别千篇一律的生日贺卡,通过动态ASCII艺术和背景音乐,创造出令人难忘的数字生日体验。无论是为程序员朋友定制专属祝福,还是为自己的技术项目增添趣味元素,Python生日祝福动画都能让你的心意以最独特的方式呈现。 ## 🎨 传统祝福 vs Python创意:价值对

gitblog_00040的博客 489

Python日志着色实战:自定义ColoredFormatter提升调试效率

在软件开发与运维中,日志记录是监控应用状态、排查问题的核心技术手段。Python内置的logging模块通过处理器(Handler)和格式化器(Formatter)的组件化设计,提供了灵活的日志管理能力。其核心原理在于将日志事件(LogRecord)经由处理器传递,并由格式化器转换为最终输出文本。通过为不同级别的日志信息(如INFO、ERROR)添加视觉区分,可以大幅提升日志的可读性与问题定位效率,这一技术价值在实时调试、日志监控等应用场景中尤为突出。本文聚焦于Python logging模块,深入讲解如何

weixin_30340617的博客 506

BruteXSS:Python自动化XSS检测工具的原理、部署与实战应用

跨站脚本攻击(XSS)是Web安全中最常见的漏洞类型之一,攻击者通过注入恶意脚本,可在用户浏览器中执行任意代码,窃取敏感信息或进行会话劫持。其原理在于Web应用未对用户输入进行充分过滤和转义,导致恶意脚本被浏览器解析执行。自动化检测工具能显著提升漏洞挖掘效率,尤其在渗透测试和安全评估中,通过模拟攻击向量快速识别潜在风险点。BruteXSS作为一款基于Python的命令行工具,采用暴力测试方法,通过向目标参数注入预定义的Payload词库,并检查响应中是否回显,从而高效定位反射型XSS漏洞。该工具依赖mech

346
上一篇: windows下xampp安装phpoffice/phpspreadsheet
devmole
博客等级 码龄20年 2粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值