鱼C论坛

 找回密码
 立即注册
查看: 972|回复: 3

[已解决]python文件的一个任务

[复制链接]
发表于 2019-4-3 22:21:02 | 显示全部楼层 |阅读模式

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

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

x
为什么我的文件可已创建 但是内容为空?
代码是下面的


f = open("e:\\biancheng\\test.txt","r")

I = []
you = []
count = 1
for each_line in f:
        if each_line[:6] != "======":
                (role,speak) = each_line.split(":",1)
                if role == "我":
                        I.append(speak)
                if role == "你":
                        you.append(speak)
               
        else:
                file_name_I = "I_" + str(count) +".txt"
                file_name_you = "you_" +str(count) + ".txt"
               
                I_file = open(file_name_I,'w')
                you_file = open(file_name_you,'w')
               
                I_file.writelines(I)
                you_file.writelines(you)

                I_file.close()
                you_file.close()
               
                I=[]
                you = []
                count += 1
               
f.close()
最佳答案
2019-4-3 22:38:04
本帖最后由 jackz007 于 2019-4-3 22:40 编辑

        代码完全没有问题,现在需要怀疑的是汉字编码,用记事本打开 "e:\\biancheng\\test.txt",点击 "另存为"  看看文件编码,最好是 "ANSI" 编码格式,如果不是,那就另存成这种格式。
        如果 test.txt 是utf8 编码,可以修改下面 2 句试试看:
  1.                 if role . decode("utf8") == "我":
  2. . . . . . .
  3.                 if role . decode("utf8") == "你":
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-4-3 22:35:25 | 显示全部楼层
好像没有错误,
你在 创建文件代码 之前,
加一句 print(I) 看一下 I 有没有内容
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-4-3 22:38:04 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-4-3 22:40 编辑

        代码完全没有问题,现在需要怀疑的是汉字编码,用记事本打开 "e:\\biancheng\\test.txt",点击 "另存为"  看看文件编码,最好是 "ANSI" 编码格式,如果不是,那就另存成这种格式。
        如果 test.txt 是utf8 编码,可以修改下面 2 句试试看:
  1.                 if role . decode("utf8") == "我":
  2. . . . . . .
  3.                 if role . decode("utf8") == "你":
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-4 14:38:14 | 显示全部楼层
本帖最后由 ZhengL 于 2019-4-4 14:39 编辑
jackz007 发表于 2019-4-3 22:38
代码完全没有问题,现在需要怀疑的是汉字编码,用记事本打开 "e:\\biancheng\\test.txt",点击 "另 ...


谢谢你的回答,我按照你的试了试 发现吧文件的编码改成了UTF-8的形式就好了。
我的整个代码是这个样子 是不是应为我的第一行注释
# -*- coding: utf-8 -*-
f = open("e:\\biancheng\\test.txt","r")

I = []
you = []
count = 1
for each_line in f:
        if each_line[:6] != "======":
                (role,speak) = each_line.split(":",1)
                if role == "我":
                        I.append(speak)
                if role == "你":
                        you.append(speak)
                print(I)
                print(you)
               
        else:
                file_name_I = "I_" + str(count) +".txt"
                file_name_you = "you_" +str(count) + ".txt"
               
                I_file = open(file_name_I,'w')
                you_file = open(file_name_you,'w')
               
                I_file.writelines(I)
                you_file.writelines(you)

                I_file.close()
                you_file.close()
               
                I=[]
                you = []
                count += 1
               
f.close()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 03:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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