鱼C论坛

 找回密码
 立即注册
查看: 1893|回复: 14

[已解决]第029讲课堂作业,分割客服问答文件

[复制链接]
发表于 2020-7-14 11:15:55 | 显示全部楼层

'w' 写入是覆盖写入,你应该改成 'a'

用 w 每次循环都会重新创建个空白文件来覆盖上次的文件内容
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 11:25:49 | 显示全部楼层
jiong_jiong 发表于 2020-7-14 11:23
已改,但是不行。
连空文件都没有。




  1. f = open(r'C:\Users\jiong\Desktop\record.txt')
  2. bfile = open('boy_1.txt', 'a')
  3. gfile = open('girl_1.txt', 'a')
  4. for each in f:
  5.     c = 2
  6.     filenameb = 'boy_' + str(c) + '.txt'
  7.     filenameg = 'girl_' + str(c) + '.txt'
  8.     if each[0:6] == '======':
  9.         bfile.close()  # 找到分隔符后,对之前的文件进行关闭保存
  10.         gfile.close()
  11.         bfile = open(filenameb, 'a')
  12.         gfile = open(filenameg, 'a')
  13.         c = c + 1
  14.     else:
  15.         (role, spoken) = each.split(':', 1)
  16.         if role == '小甲鱼':
  17.             bfile.write(spoken)
  18.         if role == '小客服':
  19.             gfile.write(spoken)
  20. bfile.close()  # 找到分隔符后,对之前的文件进行关闭保存
  21. gfile.close()
  22. f.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 11:33:17 | 显示全部楼层
jiong_jiong 发表于 2020-7-14 11:29
已测试,还是不行。没有新文件生成。



你文件内容有问题吧,我测试有生成文件,只不过少了一个
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 11:36:31 | 显示全部楼层
jiong_jiong 发表于 2020-7-14 11:34
应该不会哦,我课前有写一个很笨的程序,是可以生成的。我又去检查一下了原文件,是OK的。

以下是笨程 ...



先去检查下,我测试正常生成两个,只不过少了一个:

222.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 11:41:43 | 显示全部楼层    本楼为最佳答案   

重新改了下,现在可以生成三个文件了,之前只生成两个是因为 c = 2 在循环内了

  1. f = open(r'C:\Users\jiong\Desktop\record.txt')
  2. bfile = open('boy_1.txt', 'a')
  3. gfile = open('girl_1.txt', 'a')
  4. c = 2
  5. for each in f:
  6.     filenameb = 'boy_' + str(c) + '.txt'
  7.     filenameg = 'girl_' + str(c) + '.txt'
  8.     if each[0:6] == '======':
  9.         bfile.close()  # 找到分隔符后,对之前的文件进行关闭保存
  10.         gfile.close()
  11.         bfile = open(filenameb, 'a')
  12.         gfile = open(filenameg, 'a')
  13.         c += 1
  14.     else:
  15.         (role, spoken) = each.split(':', 1)
  16.         if role == '小甲鱼':
  17.             bfile.write(spoken)
  18.         if role == '小客服':
  19.             gfile.write(spoken)

  20. bfile.close()
  21. gfile.close()
  22. f.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 11:48:24 | 显示全部楼层
jiong_jiong 发表于 2020-7-14 11:47
我找到了,但是有个问题请教一下。
我那个笨程序,生成的文件就在桌面。

没加 open 准确路径,默认生成在脚本当前文件夹,如果是在 控制台运行,默认保存在 Python 安装路径
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 11:53:01 | 显示全部楼层
jiong_jiong 发表于 2020-7-14 11:51
我没听懂。
按理说,都是在控制台运行的啊。都是写的脚本,然后运行的。



控制台直接运行是因为控制台这个程序保存在 安装目录

而你运行脚本是因为脚本所在目录是脚本的目录

你运行脚本时候,控制台工作目录会改变成脚本目录
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-1 23:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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