在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 725|回复: 0

[原创] 基于Python语言寻找文件中特定字符并修改

[复制链接]
发表于 2023-2-22 22:59:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
"""
嵘儿的Python
寻找文件中特定的字符并替换
"""

# ! /usr/bin/env python
# -*- mode: python ; coding: utf-8 -*-

import os
import time

# 输入文件路径以及文件名
file_in = input('输入需要处理的文件:\n')
file_out = os.path.splitext(file_in)[0] + '_modified' + os.path.splitext(file_in)[1]
print('修改后的文件:\n', file_out)

# time.clock()默认单位为s
# 获取开始时间
start = time.perf_counter()
"""
代码开始
"""
# 需要寻找的字符
# IV2\<0\>:p V2\<0\>:p 0 PWL(
str_finded_1 = 'IV2'
str_finded_2 = 'PWL('


# 修改操作
# Ivdd_a<0> vdd_a<0> vss_a<0> PWL(


def modified(data: str):
    # 提取其中的数字
    num = data.split('<', 1)[1].split('\\', 1)[0]
    data_modified = 'Ivdd_a<' + num + '> vdd_a<' + num + '> vss_a<' + num + '> PWL(' + '\n'
    return data_modified


num_line_tot = 0
num_line_modified = 0


# 打开两份文件
with open(file_out, 'w') as f2:
    with open(file_in, "r", encoding='utf-8') as f1:
        while True:
            line = f1.readline()
            # 如果不为空,则进行判断
            if line:
                num_line_tot = num_line_tot + 1
                if (str_finded_1 in line) and (str_finded_2 in line):
                    num_line_modified = num_line_modified + 1
                    line_modified = modified(line)
                    f2.write(line_modified)
                else:
                    f2.write(line)
                # \r会回到本行开头,覆盖输出
                print('\r已读取\t%d\t行;已修改\t%d\t' % (num_line_tot, num_line_modified), flush=True, end='')
            # 如果line为空,则表示f1被读完,退出while循环
            else:
                print('\n')
                print('总行数:\t', num_line_tot)
                print('修改行数:\t', num_line_modified)
                break
"""
代码结束
"""
# 获取结束时间
end = time.perf_counter()
# 计算运行时间
runTime = end - start
print("修改耗时:\t%.3f\t" % runTime)
input('回车退出')

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-17 06:37 , Processed in 0.013610 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表