- 帖子
- 4
- 精华
- 0
- 积分
- 20
- 阅读权限
- 10
- 注册时间
- 2021-8-18
- 最后登录
- 2021-11-8
|
求大神指点,我的目的是读取一个文本,然后将文本每行中如果包含‘!'或者“#‘的行删掉,然后取剩下的行生成一个文本。
因为有的文本比较大,便历起来比较慢,我试着用多线程来操作,但是每次都会报如图片的错误,请大神指点,谢谢
代码如下:
import time
import requests,threading
starttime = time.time()
print ('start:%f' % starttime)
#读取S参数,生成新的文本
file='DM1_PKG_XGMI_TX.s12p'
data=open(file)
##n=8 #以s12p文件为例,后续需要改成输入条件
f=data.readlines()
data.close()
#如果行第一个字符是!或#则变空,把所有数据行和成一个字符串
result=[]
def shaixuan(i):
lock.acquire()
if '!' in f[i]:
f[i]=''
elif '#' in f[i]:
f[i]=''
else:
pass
result+=f[i]
lock.release()
if __name__ == '__main__':
# 定义一个线程锁
# 注意修改同一个变量的线程要使用同一个锁
lock = threading.Lock()
# 开启多个线程
t_list = []
for i in range(len(f)):
t = threading.Thread(target=shaixuan, args=(i,))
lock = threading.Lock()
t_list.append(t)
t.start()
for t in t_list:
t.join()
with open('data11.txt','w') as t:
t.write(result)
t.close
endtime = time.time()
print ('start:%f' % endime-starttime)
报错截图附件
|
|