首页 > 其他分享 >复制粘贴中的隐藏字符

复制粘贴中的隐藏字符

时间:2024-04-11 15:44:41浏览次数:11  
标签:字符 arr 代码 line2 空格 复制粘贴 数组 line 隐藏

pdf电子书上的代码往往带有1234等行号,这些行号就实用上说很没必要,要说讲解说明这是说的第几行,可以下文照例引用多一次,看的更清楚还不用回头按着行号找,度一下君子之心,是在给复制代码制造障碍,前缀行号得一个个删多痛苦,那就编写一个脚本自动来删了。python语法迥异于C系列,写着写着就顿下来,就好像知道路怎么走,怎就没走过一般,扎实基本功,还是得从C语言开始。问题简单,给复制的代码的每一行按空格拆分至数组,通过判断数组的第一项也就是[0]项是否是数字,是就弃,不是就留下来
 &nbsp &nbspos.chdir(r'currentpath') &nbsp &nbsp#切换到当前目录
f0=open("a.html","r") #只读打开保存复制了代码的文件
f1=open("b.html","w") #写入方式打开新文档保存删除前缀的代码
line2="" #初始化变量来保存删除了前缀代码
for line in f0: #遍历a文件里的每一行
line=line.strip(' ') #去除每行代码前后可能带有的空格
line=line.replace("\t", " ") #把每行代码可能带有制表符\t去除
arr=line.split(' ') #每行代码按空格分离进数组
for i in range(0,len(arr)): #遍历得到的按空格分离的数组
if i==0 and not arr[i].isdigit(): #判断是否数组第一个元素且为数字,isdigit也可用isnumeric替换
line2+=arr[i] + " " #条件为真保存入line2变量
elif i!=0: #当不是数组第一个元素跳过判断
line2+=arr[i] + " " #加入新变量,用空格连接所有元素
f1.write(line2) #把获得的去除前缀的代码写入b文件

重点要提的ine=line.replace("\t", " ")这一句,折腾了半个上午,开没加这一句,判断0元素是否为数字时一直得不到想要的效果,良久才发现这个隐藏的分隔符在作祟,html里带制表符时不影响实际输出的,但又看起来咋和空格没区别,可用空格分隔字符串就会把制表符带入元素里,多了\t的数字自然也就不是数字了。
细节决定效率,效率决定成就,这个问题之前不是没有碰到过,只是当时就是惘然不知所措。学了忘,忘了学,选了这行,本人就是有蹼的水鸭子也得上这旱架。

标签:字符,arr,代码,line2,空格,复制粘贴,数组,line,隐藏
From: https://www.cnblogs.com/qiuwenzheng/p/18129204

相关文章

  • 算法训练营Day08-LeetCode344. 反转字符串 && 541. 反转字符串 II && 151. 反转字符串
    344.反转字符串题目链接:LeetCode344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题思路:字符串首尾字符交换即可完成反转。定......
  • 解锁CodeGeeX智能问答中3项独有的隐藏技能
    CodeGeeX是一款强大的AI编程助手,它能帮你快速解决编程中的各种问题。无论是代码调试、功能实现,还是学习新语言,CodeGeeX都能助你一臂之力。在IDE中搜索“CodeGeeX”就可以免费下载使用CodeGeeX在侧边栏提供的AskCodeGeeX智能问答功能,很多用户每天会通过它,解答编程和技术相关的......
  • 输入流和字符串互转InputStream2String和String2InputStream
    输入流转字符串12345678910111213141516171819public static StringInputStream2String(InputStreamin){    InputStreamReaderreader= null;    try {        reader= new InputStreamReader(in, "UTF-8");   ......
  • java代码将16进制字符串转换为图片,jdbc入库blob字段,解决ORA-01704,PLS-00172,ORA-06550,
    从Oracle导出SQL文件中的insert语句包含blob字段,语句HEXTORAW函数将16进制的字符串入库,由于字符串太长,insert失败下面的代码读取完整的insert语句,将HEXTORAW函数连同16进制的字符串替换为NULL,先将字段置空插入记录,然后使用PreparedStatement对图片文件读流更新入库importorg.......
  • Java中将字符串转换成数字的方法
    转换为整数(int)你可以使用Integer.parseInt()方法或Integer.valueOf()方法将字符串转换为int类型。javaStringstr="123";intnumber=Integer.parseInt(str);//使用parseInt//或者intnumberValue=Integer.valueOf(str);//使用valueOfSystem.out.println(number);//......
  • 批量修改字段字符集和表表字符集,sql生成
    表字符集修改SELECTCONCAT('ALTERTABLE',TABLE_NAME,'CONVERTTOCHARACTERSETutf8mb4;')FROMinformation_schema.TABLESWHERETABLE_SCHEMA='dataBaseName';表字段字符集修改SELECTCON......
  • 两个纯数字字符串相加Python实现版
    """两个字符串相加模拟两个大整数相加,但是不能直接相加,采用每一位相加的方式"""defadd_large_numbers(num1,num2):#反转字符串,方便从低位开始相加num1=num1[::-1]num2=num2[::-1]#初始化结果列表和进位result=[]carry=0#......
  • echarts X轴类目名太长时隐藏,hover时显示全部
    echarts图表X轴在柱状图中,X轴类目名如果数据太长;echarts会默认进行隐藏部分字段;如果我们想让每一个类目名都显示出来,需要进行额外的处理X轴类目名太长时,默认只显示一部分类目名<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="......
  • IO流【 文件字符输入、出流;带缓冲区的字符输入、出流;对象流】
    day36IO流字符流继承图字符流继day35应用场景:操作纯文本数据注意:字符流=字节流+编译器编译器:可以识别中文字符和非中文字符,非中文字符获取1个字节(一个字节=一个字符),编译器会根据编码格式获取中文字符对应的字节数(GBK获取两个字节,UTF-8获取三个字节)abstrac......
  • STM32 HAL库F103系列之OLED显示一个字符
    原理图:OLED对应IO口OLED_CS对应OV_WRST,即:PD6;OLED_RS对应OV_SCL,即:PD3,高电平为命令,低电平为数据;OLED_WR对应OV_RRST,即:PG14;OLED_RD对应DCMI_SDA,即:PG13;OLED_RST对应DCMI_RESET,即:PG15;OLED_D[7:0]对应DCMI_D[7:0],即:PC[7:0]配置步骤:1,确定IO连接关系        开发......