python数字转大写字母_python变量名称如何转化为大写字母?
很简单。
python本身有个抽象语法树库专门解析源码。加上astor库导出到文件就可以。(如果你想用正则来解析,那就非常复杂了。所以建议来采取我的方法)
我们先思考要怎么都替换到大写字母而不影响数字和下划线?除了正则有什么办法区分呢?
把它们都转换为ascii十进制来判断,a为最小97,z为最大122。例如:
raw_str="test_1"
str_to_ascii=[chr(ord(single_str)-32) if 122>=ord(single_str)>=97 else single_str for single_str in raw_str ]
print(''.join(str_to_ascii))
输出结果
TEST_1
接着我们再来解析python源码中的变量
先安装astor库
pip install astor -i https://mirrors.aliyun.com/pypi/simple/
源文件内容
def nnn():
test_info=test
test='"asd"'
split=3
print(test.split("a"))
for every_str in ["""adddd""",test,'asd',"'asd'"]:
print(every_str)
解析脚本(这里我替换的是test,split这两个变量)
#-*- coding:utf-8 -*-
import ast
import astor
class hack_code(ast.NodeVisitor):
def visit_Name(self, node):
if node.id=="test":
node.id ="TEST"
elif node.id=="split":
node.id ="SPLIT"
return node
if __name__ == '__main__':
with open("test_file.py","r") as rd_options:
file_content=rd_options.read()
p=ast.parse(file_content)
v=hack_code()
v.visit(p)
print(astor.to_source(p))
输出结果
def nnn():
test_info = TEST
TEST = '"asd"'
SPLIT = 3
print(TEST.split("a"))
for every_str in ['adddd', TEST, 'asd', "'asd'"]:
print(every_str)
那么最后将两个脚本合并成完整的一个脚本,就是下面这样(需要注意的是你需要排除内置函数)
#-*- coding:utf-8 -*-
import ast
import astor
class hack_code(ast.NodeVisitor):
def visit_Name(self, node):
exclude_list=["abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes",
"callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate",
"eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash",
"help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map",
"max","memoryview","min","next","object","oct","open","ord","pow","print","property","range",
"repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super",
"tuple","type","vars","zip","__import__"]
if not node.id in exclude_list:
node.id=''.join([chr(ord(single_str)-32) if 122>=ord(single_str)>=97 else single_str for single_str in node.id])
return node
if __name__ == '__main__':
with open("test_file.py","r") as rd_options:
file_content=rd_options.read()
p=ast.parse(file_content)
v=hack_code()
v.visit(p)
print(astor.to_source(p))
把所有内置函数搞下,累死我了。最后输出结果
def nnn():
TEST_INFO = TEST
TEST = '"asd"'
SPLIT = 3
print(TEST.split('a'))
for EVERY_STR in ['adddd', TEST, 'asd', "'asd'"]:
print(EVERY_STR)
python数字转大写字母_python变量名称如何转化为大写字母?相关推荐
- python数字和运算符空格_Python基础——运算符与数据结构(200315)
<34> rpartition(): --根据指定字符对字符串进行分割,保留指定字符,从右边开始,只分三份 <35>split('对象','个数'): - ...
- python 数字运算及格式化_Python基础教程(3)Python数据类型、运算与格式化
一.Python的数据类型 主要分为了数字型和非数字型两个大类,其中数字型又包含整形(int).浮点型(float).布尔型(bool),而非数字分为字符串(str).列表(list).元组(tupl ...
- python中小写字母和数字用什么表示_Python变量名可以由数字、大、小写英文字母和 下划线组成。...
包装别标标志险性应在有主种危次两上分,变量那么在运质时类物输此,危险危险性货物一种主要既有如果. 不得惯溜放.名可母和摔,卸货气瓶时. 排除可以及时静电,数字到安目的以达全运输的,带中的金地面橡胶拖地 ...
- python数字类型分为三类_Python | 数据类型
Python让Python成为语言研究的利器Xu & YangPhoneticSan学习参考 Python for Linguists Natural Language Processing ...
- python数字类型及运算_Python基础之(基本数据类型及运算)
一.运算 1.1.算数运算 1.2.比较运算: 1.3.赋值运算: 1.4.逻辑运算: 1.5.成员运算: 针对逻辑运算的进一步研究: 1.在没有()的情况下not 优先级高于 and,and优先级高 ...
- python数字类型及运算_Python基础教程:运算符以及数据类型解析
运算符 一.算数运算: 二.比较运算: 三.赋值运算 四.逻辑运算 五.成员运算 基本数据类型 一.Number(数字) Python3中支持int.float.bool.complex. 使用内置的 ...
- python数字求和菜鸟教程_Python Number(数字) | 菜鸟教程
Python Number(数字) Python Number 数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间. 以下实例在变量赋值 ...
- python数字类型及运算_Python类型和运算--数字
在Python中,数字并不是一个真正的对象类型,而是一组相似类型的分类.不仅包括通常的数字类型(整数和浮点数),黑包括数字表达式,以及高级的数字编程. 基本数字常量 数字 常量 1234, -24 整 ...
- python数字转中文字符_Python实现中文数字转换为阿拉伯数字的方法示例
本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉 ...
最新文章
- 1小时学会:最简单的iOS直播推流(二)代码架构概述
- linux硬盘拷贝系统,教你在第二块硬盘上拷贝安装Linux系统
- c语言一行代码太长,C语言修改一行代码,运行效率居然提升数倍,这个技巧你知道吗...
- LeetCode-数组-189. 旋转数组
- 布隆过滤器避免redis缓存穿透
- 锁屏界面显示某些设置已隐藏_iOS 14 隐藏功能,只要轻点手机背面就能截屏
- 【TensorFlow】 基于视频时序LSTM的行为动作识别
- Cell子刊主编:文章被编辑拒稿,主要是这4大原因
- Python程序中各函数间调用关系分析与可视化
- 2.4变动和最终变量(Volatile and Final Variables)
- STM32_WS2811驱动
- 小程序的好处是什么?
- 鹰式价差matlab,期权价差
- java cmyk和rgb的转换_CMYK与RGB相互转换(java)
- 广义速度V与管理理论——流水线、TPS…
- 聚沙成塔--爬虫系列(四)(爬取糗事百科段子)
- 系统设计之时间维度[数据仓库]
- SNARK性能及安全——Verifier篇
- 42.	注入篇——Havij、Pangolin使用
- 如何获取dgv中所显示的全部数据
热门文章
- 终朝睡在鸿蒙窍,南怀瑾老师:话头——答叔、珍两位质疑的信
- 深度学习篇之数据集划分方法-附代码python详细注释
- postgresql windows下修改帐号密码 (图文)
- java.sql.SQLException: ORA-00918: 未明确定义列ORA-00918
- java中接口可不可以继承一般类,为什么?
- 浅谈 ext2 文件系统的特点、优缺点以及使用场景
- java输出GPA_使用ENUM和switch case的循环Java GPA计算器
- python色卡_python plt 色卡
- 戴尔win10重新安装win7系统
- ceph pg不一致问题