p30讲中的代码,这个该怎么理解
本帖最后由 fezoe 于 2020-6-7 17:35 编辑上不了图
题目大概是小甲鱼跟小客服之间的对话,有三段
然后题目要求是把三段分成6个文档。每一段小甲鱼跟小客服的对话分别存在boy跟girl这两个文档。
然后 这里报错了两个地方。是什么原因啊。
这个文件路径是没错的。我有试过打开的。
然后这个xx.txt里面的内容是:
小甲鱼:到你的的的二付付付付
小助理:大声说那地方上粉底
小甲鱼:顶顶顶顶
小助理:好好好
=================================================
小甲鱼:到你你的爱在那
小助理:大声说到底在哪
小甲鱼:顶顶顶顶就不说
小助理:好好好略略
=================================================
小甲鱼:到你的的的二付
小助理:那地方上粉底
小甲鱼:顶
小助理:好略略
我随便写的
File "E:/study/file/filespilt.py", line 33, in <module>
split_file('E:\\xx.txt')
File "E:/study/file/filespilt.py", line 21, in split_file
(role, line) = i.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)
是什么原因呢
def save_file(boy,girl,count):
filename_boy = 'boy_' + str(count) + ".txt"
filename_girl = 'girl_' + str(count) + ".txt"
boy_file = open(filename_boy, "w")
girl_file = open(filename_girl, "w")
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
def split_file(file_name):
f=open(file_name)
boy=[]
girl=[]
count=1
for i in f:
if i[:6] != "======":
(role, line) = i.split(':',1)
if role == "小甲鱼":
boy.append(line)
if role =="小助理":
girl.append(line)
else:
save_file(boy,girl,count)
boy=[]
girl=[]
count +=1
save_file(boy,girl,count)
f.close()
split_file('E:\\xx.txt') 你代码错了吧if 判断 等于号 要在 split 前 不然会报错的 split要在判断是否为分割线的后面 Twilight6 发表于 2020-6-7 17:03
你代码错了吧if 判断 等于号 要在 split 前 不然会报错的
对 才发现写错了。不过我还是不大理解。 这个只能分割一次的话 是怎么做到 小甲鱼跟小客服的话都分开的。就是不知道怎么运行 fezoe 发表于 2020-6-7 17:07
对 才发现写错了。不过我还是不大理解。 这个只能分割一次的话 是怎么做到 小甲鱼跟小客服的话都分开的。 ...
先理解这边把,这个是直接for循环文件,就相当于一行一行拿出来循环
f=open('E:\\xx.txt')
for i in f
所以每一行只有一个人说的话,就是一个冒号所以只需要切割 1 次 ,防止人说的话中带有冒号,通过for循环把每一行切割一次,碰到 === 就停止切割 ,存入新文件中 Twilight6 发表于 2020-6-7 17:14
先理解这边把,这个是直接for循环文件,就相当于一行一行拿出来循环
所以每一行只有一个人说的话,就 ...
对 我就是理解不了这个 所以他是一行一行进行循环吗。一行循环完后,新的一行继续判断 等号 ? fezoe 发表于 2020-6-7 17:17
对 我就是理解不了这个 所以他是一行一行进行循环吗。一行循环完后,新的一行继续判断 等号 ?
对的以行为单位 拿来循环 每次都是取一行 Twilight6 发表于 2020-6-7 17:20
对的以行为单位 拿来循环 每次都是取一行
感谢你,原来是这样!但是我执行了一下,有错误耶 更新在主楼。你能帮我再看看那里错了吗 fezoe 发表于 2020-6-7 17:33
感谢你,原来是这样!但是我执行了一下,有错误耶 更新在主楼。你能帮我再看看那里错了吗
你txt文件里面用了中文的冒号,把中文冒号改成英文的 Twilight6 发表于 2020-6-7 17:35
你txt文件里面用了中文的冒号,把中文冒号改成英文的
soga太粗心啦非常感谢你i fezoe 发表于 2020-6-7 17:45
soga太粗心啦非常感谢你i
没事~
页:
[1]