猪猪虾 发表于 2020-3-25 22:31:56

29讲,为什么第一个j+=1处会报错

#小甲鱼的对话单独保存为boy_*.txt,去掉”小甲鱼:“
#小客服的对话单独保存为girl_*.txt,去掉”小客服:“
#文件中一共有三段对话,分别保存为boy_1.txt,boy_2.txt,boy_3.txt
#以及girl_1.txt,girl_2.txt,girl_3.txt共6个文件
f=open(r"C:\Users\Administrator\Desktop\python\record.txt","r")
f.seek(0,0)                                    #从文件头开始
string=f.read()                              #讲txt里面的东西赋值给字符串string
boy_1=open(r"C:\Users\Administrator\Desktop\python\boy_1.txt",'a')
boy_2=open(r"C:\Users\Administrator\Desktop\python\boy_2.txt",'a')
boy_3=open(r"C:\Users\Administrator\Desktop\python\boy_3.txt",'a')
girl_1=open(r"C:\Users\Administrator\Desktop\python\girl_1.txt",'a')
girl_2=open(r"C:\Users\Administrator\Desktop\python\girl_2.txt",'a')
girl_3=open(r"C:\Users\Administrator\Desktop\python\girl_3.txt",'a')


sign=                                        #存放换行符的位置,换行符是有每个句子结尾和句子开头都有
j=0                                             #一个换行符,例如‘女朋友?\n\n小甲鱼:咦???\n\n小客服:我跟:’
while string!='-':
    for j in range(len(string)):                #max(sign)找最大值,越往后的换行符的位置参数越大,就是离当前换行符最近的那一个换行符的位置
      if string=='\n' and"小客服:" in string:
         boy_1.write(string    #+4的目的是避免将”小甲鱼:“,”小客服:“放入文件中
         j+=1                                    #跳过第二个换行符,开始新一轮判别
         sign.append(j)                     #sign.append(j+1)存放换行符的位置
      else string=='\n' and"小甲鱼:" in string :
         girl_1.write(string
         j+=1
         sign.append(j)

                                             
location_1=j                                       #存放第一次出现‘-’的位置
if string=='-':                     #循环跳过所有的‘-’符号之后,在开始存放数据
   location_1+=1
else:
    while string!='-':
      for m in range(location_1,len(string)):
            if string=='\n' and"小客服:" in string:
               boy_2.write(string#+4的目的是避免将”小甲鱼:“,”小客服:“放入文件中
               m+=1
               sign.append(m)
            else string=='\n' and"小甲鱼:" in string :
               girl_2.write(string
               m+=1
               sign.append(m)

               
location_2=m                                                #存放第一次出现‘-’的位置
if string=='-':                               #循环跳过所有的‘-’符号之后,在开始存放数据
   location_2+=1
else:
    while string!='-':
      for n in range(location_2,len(string)):
            if string=='\n' and"小客服:" in string:
               boy_3.write(string#+4的目的是避免将”小甲鱼:“,”小客服:“放入文件中
               n+=1
               sign.append(n)
            else string=='\n' and"小甲鱼:" in string :
               girl_3.write(string
               n+=1
               sign.append(n)
            

Hoiste 发表于 2020-3-25 22:36:56

不是j += 1处有错,是前面那句boy_1.write(string漏了右括号
Python标红报错经常会标到别的地方,你前后看看语法错误在哪里就好了。

猪猪虾 发表于 2020-3-25 22:49:01

Hoiste 发表于 2020-3-25 22:36
不是j += 1处有错,是前面那句boy_1.write(string漏了右括号
Python标红报错经常会标到别 ...

还可以这样,谢谢,学到了
页: [1]
查看完整版本: 29讲,为什么第一个j+=1处会报错