|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
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('回车退出')
|
|