鱼C论坛

 找回密码
 立即注册
查看: 2478|回复: 9

[新手求助] 为什么我的文件写不进去, 总是空的

[复制链接]
发表于 2016-10-1 08:39:11 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 dodopromi 于 2016-10-2 16:46 编辑

还是昨天的题目, 继续做,  显示基本对了, 但是文件写不进去,  一头汗, 大神们,你们在哪里?

  1. f = open(r'C:\Documents and Settings\Administrator\桌面\test\2.txt','r')    # 这是源文件, 一段字幕
  2. f1=open(r'C:\Documents and Settings\Administrator\桌面\test\3.txt','w')              #   这是我准备写入的文件
  3. gre=open(r'C:\Documents and Settings\Administrator\桌面\test\gre.txt','r')         #  这是一个gre单词本
  4. gredic={}                                                                                                                       #  我费了好大的劲,才做成字典的, 你们不要笑我
  5. for each_line in gre:
  6.     gredic[each_line.split('\t\t')[0]]=each_line.split('\t\t')[-1]


  7. for each_line in f:
  8.     words=each_line.split()                           #我把每一段的单词都分解出来, 去除标点符号,放入line列表
  9.     line=[]
  10.     for each_word in words:
  11.         line.append(each_word)      
  12.         if each_word.isalpha():                         #去除标点,  我写得好恶心, 但是想不出怎么简化,
  13.             if each_word in gredic:
  14.                 #print(each_word,'是gre词汇', gredic[each_word])       # 因为太笨了,看不懂程序怎么走的, 所以要打出来看看  大神请忽略
  15.                 m='['+each_word+'是gre词汇'+ gredic[each_word]+']'   #  列表元素添加不来, 所以想了个笨办法
  16.                 line.append(m)
  17.                
  18.         else:
  19.             each_word1=each_word[:-1]
  20.             if each_word1 in gredic:
  21.                 #print(each_word1,'是gre词汇', gredic[each_word1])
  22.                 m='['+each_word1+'是gre词汇'+ gredic[each_word1]+']'
  23.                 line.append(m)
  24.     print(line)
  25.     f1.writelines(line)    # 然后f1纹丝不动, 怎么办T_T

  26. f.close
  27. f1.close
  28. gre.close
复制代码


结果显示
['21']
21
['打死它', 'abacus', '[abacus是gre词汇  n.算盘\n]', '杀了它']
打死它 abacus [abacus是gre词汇  n.算盘
] 杀了它


写完以后, 文件0k , 啥也没有

另外恭请各位帮我精简
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-10-1 11:09:56 | 显示全部楼层

回帖奖励 +1 鱼币

f1.write(line+'\r\n')    # 然后f1纹丝不动, 怎么办T_T
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-10-1 11:39:29 | 显示全部楼层
SixPy 发表于 2016-10-1 11:09
f1.write(line+'\r\n')    # 然后f1纹丝不动, 怎么办T_T

我试过了, 还是没有写进去. 怎么办.
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-1 15:51:24 | 显示全部楼层
本帖最后由 dodopromi 于 2016-10-2 13:11 编辑

靠,我只是想解决问题,不用这么苛刻吧。谁有问题不是急着找人回答呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-1 19:51:15 | 显示全部楼层
up
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-10-1 21:54:52 | 显示全部楼层
请仔细看倒数1-3行
  1. f.close
  2. f1.close
  3. gre.close
复制代码

发现什么问题了吗?刮开即可看答案。
Windows为了提高速度,有缓存机制
所以,必须调用关闭函数,让数据写入到硬盘中。
这时你会问了:不是已经调用了吗?
但是,这种方式并没有调用函数!
调用函数的真正方法是:
函数名(参数列表,可为空)
但是,你写成了这样,只是表明一个函数的入口点:
函数名
所以……正确的方法是:
f.close()
f1.close()
gre.close()

请充分思考再刮开看答案!

评分

参与人数 1鱼币 +2 收起 理由
dodopromi + 2 解决问题

查看全部评分

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

使用道具 举报

 楼主| 发表于 2016-10-2 05:48:16 From FishC Mobile | 显示全部楼层
up

点评

再灌水就锁帖了啊~  发表于 2016-10-2 11:11
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-2 13:09:10 From FishC Mobile | 显示全部楼层
好,我回去看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-2 16:47:04 | 显示全部楼层
无符号整形 发表于 2016-10-1 21:54
请仔细看倒数1-3行

发现什么问题了吗?刮开即可看答案。

果然是我太蠢了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-23 02:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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