txt文件中的内容大概是这样的:
2.在图3中,当开关断开时,R1、R2_______(串联/并联),当开关闭合时,被短路。开关由断开转为闭合时,总电阻,总电流_______,通过R2的电流_______(变大/变小/不变)。
3.如图3,当开关闭合时,R2两端电压为3V,若R2=10Ω,则电流为_______。断开开关后,R2两端电压为1V,则电流为_______,此时R1两端电压为_______, R1=。
4.如图3,当开关闭合时,电流为0.6V,若R2=10Ω,则电源电压为,断开开关后,电流为0.2V,则总电阻R1=。
5.在图4中,当开关断开时,被断路,当开关闭合时,R1、R2(串联/并联)。开关由断开转为闭合时,总电阻,总电流_______,通过R2的电流_______(变大/变小/不变)。
第一步:
将txt文件读取进来
第二步:
将其中的下划线替换为括号。
第三步:
将读取进来的文件按照题目标号分成列表。例如 从2.开始,截取到3.结束(这里面的‘.’不是普通的点,我用ord(.)查看了他对应的数字,和普通的英文句号不同,正是因为这样我才有机会截取出来)。这样就可以将一道完整的题目存到一个列表list1中的元素里面了。
第四步:
将list1中的元素写入到csv格式的文件中去,这样有助于我后续处理。
import csv
f=open(r'C:\Users\User\mu_code\新建文本文档.txt','r',encoding="utf-8")
nei_rong = f.read()
nei_rong_list=[]# for i in range(3):# string1=str(a)+'.'# nei_ronglist.append(str(a)+'.'+nei_rong.split(string1,1)[1])# a=a+1
b='____________________________________________________________'for i inrange(60):
nei_rong=nei_rong.replace(b,'( )')#replace 的作用在字符串中寻找b字符,如果有就全部替换掉
b=b.replace('_','',1)#replace 中的1代表想替换几个,代表替换的数量,这个循环的作用是:在字符串中寻找‘_’,先寻找最长的#再将b中的一个下划线去掉,b变短了一截,在其中寻找短一截的b。由最长至最短寻找,逐渐的将nei_rong#中的长短不一的下划线替换魏括号。print(b)# nei_rong=nei_rong.replace('______','( )')# nei_rong=nei_rong.replace('_______','( )')# nei_rong=nei_rong.replace('_________','( )')# nei_rong=nei_rong.replace('__________','( )')# nei_rong=nei_rong.replace('___________','( )')# nei_rong=nei_rong.replace('____________','( )')# nei_rong=nei_rong.replace('_____________','( )')# nei_rong=nei_rong.replace('______________','( )')# nei_rong=nei_rong.replace('_______________','( )')# nei_rong=nei_rong.replace('________________','( )')# nei_rong=nei_rong.replace('_________________','( )')
a=2for i inrange(20):#a最开始等于2,并且不断增加。find函数找到字符串nei_rong中的元素 2.,然后再去寻找3. 并且将这些元#素的#序号存储在start中和end中
start=nei_rong.find(str(a)+'.')
end=nei_rong.find(str(a+1)+'.')#这里对字符串进行了截取,将其中一部分截取出来,放在str1中。str1中存储的就是一道完整的电学题目。
str1=nei_rong[start:end]#这里注意截取要使用冒号
nei_rong_list.append(str1)#截取一道题目,放在列表种一道题目
a=a+1withopen(r'C:\Users\User\mu_code\test.csv','w')as f:
f_csv = csv.writer(f)for i inrange(len(nei_rong_list)):#这里有两个地方容易错误,writerow写成writerows,还有就是writerow()括号里面的内容要加上[],不然使用#excel打开的时候发现每个单元格里面都只有一个字符。
f_csv.writerow([nei_rong_list[i]])
版权归原作者 weixin_40114328 所有, 如有侵权,请联系我们删除。