CD84380973 发表于 2020-3-24 13:58:19

求解 怎么改

f = open('D:\\record.txt')

boy = []
girl = []
count = 1

for each_line in f:
    if each_line[:6] != '===================':
      (role,line_spoken) = each_line.split(':',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)
      girl_file.writelines(girl)

      boy_file_close()
      girl_file_close()

      boy=[]
      girl=[]
      count += 1

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)
girl_file.writelines(girl)

boy_file_close()
girl_file_close()
      
f.close()

Traceback (most recent call last):
File "C:/Users/john/Desktop/python练习/29练习1.py", line 9, in <module>
    (role,line_spoken) = each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)

qiuyouzhi 发表于 2020-3-24 13:59:47

文件内容问题
把文件内容改成和小甲鱼一样的

BngThea 发表于 2020-3-24 14:00:33

if each_line[:6] != '===================':
这一行右边引号中的 =改为6个

CD84380973 发表于 2020-3-24 14:02:36

qiuyouzhi 发表于 2020-3-24 13:59
文件内容问题
把文件内容改成和小甲鱼一样的

内容是一样的 论坛下载的

CD84380973 发表于 2020-3-24 14:03:20

BngThea 发表于 2020-3-24 14:00
if each_line[:6] != '===================':
这一行右边引号中的 =改为6个

试了还是不行

qiuyouzhi 发表于 2020-3-24 14:03:41

CD84380973 发表于 2020-3-24 14:02
内容是一样的 论坛下载的

呃呃呃
最好复制内容

sunrise085 发表于 2020-3-24 14:04:43

你的程序错误不在这一行。而在上一行
if each_line[:6] != '===================':
判断条件中,左侧写的是each_line[:6],但是右侧却有这么一长串等号,右侧应该是六个等号'======'

BngThea 发表于 2020-3-24 14:06:22

CD84380973 发表于 2020-3-24 14:03
试了还是不行

你在这个if前用print打印一下each_line,看看读取的对不对

sunrise085 发表于 2020-3-24 14:09:15

CD84380973 发表于 2020-3-24 14:03
试了还是不行

引号中等号个数的问题解决后,若问题还是存在,那就应该是你程序中   each_line.split(':',1) 这里面的冒号与文件中的冒号不一样。文件中是中文的冒号,这里就要用中文的冒号,文件中是英文的冒号,这里就一个用英文的冒号。
而且文件中的各个冒号都应该检查一遍。

CD84380973 发表于 2020-3-24 14:12:17

sunrise085 发表于 2020-3-24 14:04
你的程序错误不在这一行。而在上一行
if each_line[:6] != '===================':
判断条件中,左侧写的 ...

从文章中复制了6个=号过来还是不行

sunrise085 发表于 2020-3-24 14:13:35

CD84380973 发表于 2020-3-24 14:12
从文章中复制了6个=号过来还是不行

引号中等号个数的问题解决后,若问题还是存在,那就应该是你程序中   each_line.split(':',1) 这里面的冒号与文件中的冒号不一样。
文件中是中文的冒号,这里就要用中文的冒号,文件中是英文的冒号,这里就一个用英文的冒号。
而且文件中的各个冒号都应该检查一遍。

CD84380973 发表于 2020-3-24 14:13:48

BngThea 发表于 2020-3-24 14:06
你在这个if前用print打印一下each_line,看看读取的对不对

可以打印

CD84380973 发表于 2020-3-24 14:15:26

sunrise085 发表于 2020-3-24 14:09
引号中等号个数的问题解决后,若问题还是存在,那就应该是你程序中   each_line.split(':',1) 这里面的 ...

按照你说的修改了 还是报错 还是红字一样的

xcsummer 发表于 2020-3-24 14:16:42

ValueError: not enough values to unpack
提示语说在第九行出错了,你就去找第九行或者前面的几行,他说值错误,没有足够的值……
就是说你的条件判断有问题。左边和右边的元素不等,把右边等号改成左边一样的个数就可以了

CD84380973 发表于 2020-3-24 14:17:10

CD84380973 发表于 2020-3-24 14:15
按照你说的修改了 还是报错 还是红字一样的

Traceback (most recent call last):
File "C:/Users/john/Desktop/python练习/29练习1.py", line 26, in <module>
    boy_file_close()
NameError: name 'boy_file_close' is not defined

CD84380973 发表于 2020-3-24 14:18:06

xcsummer 发表于 2020-3-24 14:16
ValueError: not enough values to unpack
提示语说在第九行出错了,你就去找第九行或者前面的几行,他说 ...

Traceback (most recent call last):
File "C:/Users/john/Desktop/python练习/29练习1.py", line 26, in <module>
    boy_file_close()
NameError: name 'boy_file_close' is not defined

CD84380973 发表于 2020-3-24 14:20:03

CD84380973 发表于 2020-3-24 14:15
按照你说的修改了 还是报错 还是红字一样的

成功了 但是结果生成到哪里去了?

sunrise085 发表于 2020-3-24 14:20:36

CD84380973 发表于 2020-3-24 14:18
Traceback (most recent call last):
File "C:/Users/john/Desktop/python练习/29练习1.py", line 26, ...

这里应该是boy_file.close()
你把.写成下划线了

CD84380973 发表于 2020-3-24 14:21:35

sunrise085 发表于 2020-3-24 14:20
这里应该是boy_file.close()
你把.写成下划线了

成功了 但是结果生成到哪里去了?

sunrise085 发表于 2020-3-24 14:22:17

CD84380973 发表于 2020-3-24 14:20
成功了 但是结果生成到哪里去了?

你问的是新生成的文件吗?
和你的程序在一个路径下。
C:/Users/john/Desktop/python练习/
页: [1] 2
查看完整版本: 求解 怎么改