蚂蚁绊大象 发表于 2018-4-7 22:27:45

提取文件内容里参数够却提示参数不够求解

本帖最后由 蚂蚁绊大象 于 2018-4-8 09:39 编辑

各位大神,就像图中那样总是提示缺少一个参数,可是参数两个够了还报错,作为菜鸟,实在是搞不懂了,求解。谢谢鱼油们


f=open("record.txt")
boy=[]
girl=[]
count=1
#把各自的对话内容提取分开
for each_line in f:
    if each_line[:5] != "=====":
      (role,line_spoken) = each_line.split(':',1)#split(sep=None,maxsplit=-1) 不带参数默认是以空格为分隔符切片字符串
      if role =="小甲鱼":
            boy.append(line_spoken)
      if role =="小客服":
            girl.append(line_spoken)
#下面是给各自创建一个文件然后把上面分好的对话内容分别装进去
else:
    file_name_boy="boy_" +str(count) + ".txt"
    file_name_girl="girl_" +str(count) + ".txt"
    boy_file=open(file_name_boy,"w")
    girl_file=open(file_name_girl,"w")
    boy_file.writelines(boy)            #writeline(seq) 向文件写入字符串seq,seq应该是一个返回字符串的可迭代对象
    girl_file.writeline(girl)
    boy=[]
    girl=[]
    count+=1
boy_file.close()
girl_file.close()
f.close()
      
      
      

BngThea 发表于 2018-4-7 22:36:16

一种可能是文件中有空行

蚂蚁绊大象 发表于 2018-4-7 22:42:52

BngThea 发表于 2018-4-7 22:36
一种可能是文件中有空行

文件里面的空行改了以后还是不行,报同样的错误

BngThea 发表于 2018-4-8 08:13:03

蚂蚁绊大象 发表于 2018-4-7 22:42
文件里面的空行改了以后还是不行,报同样的错误

你在第一个if下面用print打印一下each

蚂蚁绊大象 发表于 2018-4-8 09:22:51

BngThea 发表于 2018-4-8 08:13
你在第一个if下面用print打印一下each

不行啊,结果还是报原来的错误。

BngThea 发表于 2018-4-8 09:30:58

蚂蚁绊大象 发表于 2018-4-8 09:22
不行啊,结果还是报原来的错误。

我的意思是你看一下每一次执行的时候看看each_line的内容是什么,这里报错就是因为each_line这个字符串不能被分割

蚂蚁绊大象 发表于 2018-4-8 09:42:23

BngThea 发表于 2018-4-8 09:30
我的意思是你看一下每一次执行的时候看看each_line的内容是什么,这里报错就是因为each_line这个字符串不 ...

我把内容粘上去了还有要提取的文件,因为刚开学,太笨了,帮忙改下呗,谢谢了{:5_109:}

BngThea 发表于 2018-4-8 10:41:18

蚂蚁绊大象 发表于 2018-4-8 09:42
我把内容粘上去了还有要提取的文件,因为刚开学,太笨了,帮忙改下呗,谢谢了

看了一下,应该是你的文件中的冒号都是中文的,你用spilt分割的时候也要用中文的冒号

BngThea 发表于 2018-4-8 10:43:47

蚂蚁绊大象 发表于 2018-4-8 09:42
我把内容粘上去了还有要提取的文件,因为刚开学,太笨了,帮忙改下呗,谢谢了

还有一处错误,writelines不能写成writeline

Joun 发表于 2018-4-8 17:07:09

split里面的逗号是不是英文的

Joun 发表于 2018-4-8 17:10:54

BngThea 发表于 2018-4-8 10:41
看了一下,应该是你的文件中的冒号都是中文的,你用spilt分割的时候也要用中文的冒号

这样是不会报错的
页: [1]
查看完整版本: 提取文件内容里参数够却提示参数不够求解