鱼C论坛

 找回密码
 立即注册
查看: 1293|回复: 13

[已解决]python零基础入门 文件:一个任务 报错

[复制链接]
发表于 2019-8-16 20:54:59 | 显示全部楼层 |阅读模式

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

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

x
出现错误:
Traceback (most recent call last):
  File "C:\Users\20940\Desktop\xin\file.py", line 1, in <module>
    f=open('C:\\Users\\20940\\Desktop\\xin\\record.txt')
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\20940\\Desktop\\xin\\record.txt'


代码如下:
f=open('C:\\Users\\20940\\Desktop\\xin\\record.txt')

boy=[]
girl=[]
count=1


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


我的python文件和record.txt 都放在一个文件夹里了
为什么会有这样的错误啊,求大神讲解!
最佳答案
2019-8-16 21:22:41
        楼主,你得把要打开读的文件复制到这个路径: 'C:\Users\20940\Desktop\xin' 并且,要保证文件名是 'record.txt'
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-8-16 20:57:45 | 显示全部楼层
打开 cmd,输入 cd C:\\Users\\20940\\Desktop\\xin,看一下是否提示 “系统找不到指定的路径。”
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-16 21:22:41 | 显示全部楼层    本楼为最佳答案   
        楼主,你得把要打开读的文件复制到这个路径: 'C:\Users\20940\Desktop\xin' 并且,要保证文件名是 'record.txt'
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 00:32:36 | 显示全部楼层
python文件和record.txt在一个文件夹下不要带路径试试

f=open('record.txt',encoding='UTF-8')

boy=[]
girl=[]
count=1


for each_line in f:
    if each_line[:6]!= '======':
#        (role, line_spoken)= each_line(':',1) 需要调用split方法进行分割
        (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()
print('done!')
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 00:34:41 | 显示全部楼层
(role, line_spoken) = each_line.split(':',1) 注意一下冒号是中文还是英文的,我的record文件是自己做的,是中文的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 12:03:42 | 显示全部楼层
这个文件存在吗?
试一下
  1. f=open('C:\\Users\\20940\\Desktop\\xin\\record.txt','w')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 13:51:02 | 显示全部楼层
zltzlt 发表于 2019-8-16 20:57
打开 cmd,输入 cd C:\%users\\20940\\Desktop\\xin,看一下是否提示 “系统找不到指定的路径。”

存在的!咋整?什么情况
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 14:03:09 | 显示全部楼层
Wowzz 发表于 2019-8-17 13:51
存在的!咋整?什么情况

record.txt 是真正的文件名吗?最好发张截图来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 14:14:29 | 显示全部楼层
问题已解决,问题在于:1、我的txt文档名称被我写成了"record.txt",实际上编译器读取的时候就变成了"record.txt.txt"
2、我的txt文档中冒号使用的是中文符号,所以导致了编译器无法识别到我代码里设置的英文状态下的冒号
3、打开文件这里使用   f=open('record.txt')    或者使用绝对路径   f=open('C:\\Users\\20940\\Desktop\\xin\\record.txt')  都是可以的

最后感谢大家的帮助!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 14:39:32 | 显示全部楼层
最后贴上我成功运行后的代码:

def save_file(boy,girl,count):
    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()

def split_file(file_name):

    f=open(file_name)

    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:
        #文件的分别保存操作
              save_file(boy,girl,count)

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


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

split_file('record.txt')

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

使用道具 举报

发表于 2019-8-17 17:16:27 | 显示全部楼层
就是文件的位置没有放对。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 17:33:27 | 显示全部楼层
Wowzz 发表于 2019-8-17 14:14
问题已解决,问题在于:1、我的txt文档名称被我写成了"record.txt",实际上编译器读取的时候就变成了"recor ...

问题解决后记得结帖
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 22:23:29 | 显示全部楼层
zltzlt 发表于 2019-8-17 17:33
问题解决后记得结帖

啊,我不知道在哪结贴,没找到!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 22:24:38 | 显示全部楼层
Wowzz 发表于 2019-8-17 22:23
啊,我不知道在哪结贴,没找到!

设置一个回复为最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-20 13:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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