鱼C论坛

 找回密码
 立即注册
查看: 1349|回复: 10

[已解决]第31讲课后题求助

[复制链接]
发表于 2019-8-17 11:28:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
有一个附件被禁止上传,请到python31讲获取
问题:为什么record.txt里面的对话全部在一行里面 当我执行for each_line in f 的时候  它却一句一句清晰的分开了???


def split_file(file_name):
    count = 1
    boy = []
    girl = []

    f = open(file_name)

    for each_line in f:
        print(each_line)
        if each_line[:6] != '======':
            (role, line_spoken) = each_line.split(':', 1)
            if role == '小甲鱼':
                boy.append(line_spoken)
            if role == '小客服':
                girl.append(line_spoken)
        else:
            save_file(boy, girl, count)

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

    save_file(boy, girl, count)
    f.close()

split_file('record.txt')
最佳答案
2019-8-17 13:52:43
PYthofreeze 发表于 2019-8-17 13:28
小弟我还是懂得换行符  ,只是不知为何用windows的记事本打开会出现这个问题 也看不到\r\n

你这就是不懂.
1. 谁说了这个文件换行符是\r\n了???这个文件的换行符是\n
2. 记事本默认的换行符是windows的换行符\r\n ,你用它打开能分行?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-8-17 11:29:24 | 显示全部楼层
就算是for 他才一行的对话  是怎么做到这么智能的把每一句话分开?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 11:36:34 | 显示全部楼层
本帖最后由 Krant5 于 2019-8-17 11:41 编辑

你说这叫一行? 懂不懂换行符的概念呢?请不要用windows的记事本打开,本质问题就是\r\n 与\n的区别,没记错应该是os.linesep
TIM截图20190817113505.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 12:09:26 | 显示全部楼层
PYthofreeze 发表于 2019-8-17 11:29
就算是for 他才一行的对话  是怎么做到这么智能的把每一句话分开?

\n,\r,不懂吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 13:28:29 | 显示全部楼层
Krant5 发表于 2019-8-17 11:36
你说这叫一行? 懂不懂换行符的概念呢?请不要用windows的记事本打开,本质问题就是\r\n 与\n的区别,没记错应 ...

小弟我还是懂得换行符  ,只是不知为何用windows的记事本打开会出现这个问题 也看不到\r\n
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 13:29:49 | 显示全部楼层

换行 回车 懂得 只是windows的记事本打开会不显示
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 13:30:33 | 显示全部楼层
PYthofreeze 发表于 2019-8-17 13:28
小弟我还是懂得换行符  ,只是不知为何用windows的记事本打开会出现这个问题 也看不到\r\n

所以就是很疑惑,才来求教一下,这是什么情况
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 13:38:57 | 显示全部楼层
PYthofreeze 发表于 2019-8-17 13:30
所以就是很疑惑,才来求教一下,这是什么情况

用 notepad++ 打开
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 13:52:43 | 显示全部楼层    本楼为最佳答案   
PYthofreeze 发表于 2019-8-17 13:28
小弟我还是懂得换行符  ,只是不知为何用windows的记事本打开会出现这个问题 也看不到\r\n

你这就是不懂.
1. 谁说了这个文件换行符是\r\n了???这个文件的换行符是\n
2. 记事本默认的换行符是windows的换行符\r\n ,你用它打开能分行?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 20:24:18 | 显示全部楼层
Krant5 发表于 2019-8-17 13:52
你这就是不懂.
1. 谁说了这个文件换行符是\r\n了???这个文件的换行符是\n
2. 记事本默认的换行符是wind ...

本质上来说 就是 我这个文本用了\n的换行符,但是在记事本那 只有\r\n才能换行  所以用记事本打开只有一行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 21:03:55 | 显示全部楼层
PYthofreeze 发表于 2019-8-17 13:29
换行 回车 懂得 只是windows的记事本打开会不显示

记事本要是显示换行符那就没人看得懂写的什么了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-25 03:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表