鱼C论坛

 找回密码
 立即注册
查看: 1357|回复: 18

[已解决]文件操作问题

[复制链接]
发表于 2020-2-2 19:22:39 | 显示全部楼层 |阅读模式

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

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

x
filename = input("请输入文件名:")
content = input("请输入内容【单独输入':w'保存退出】:")

f = open(filename,'w')
while True:
    f.write(content)
    if content.endswith(':w'):
        break
f.close()

要求:输入:w 结束程序并保存之前输入的内容到文件
为啥用 content.endswith(':w') 判断不出来呢
还有 content[-2:-1] == [:,w]
if ":w" in content:
这两种方式都判断不出来?是哪里写错了还是咋回事
最佳答案
2020-2-2 19:33:50
本帖最后由 一个账号 于 2020-2-2 19:36 编辑

你想要的效果是不是这样:
  1. filename = input("请输入文件名:")
  2. f = open(filename,'w')
  3. while True:
  4.     content = input("请输入内容【单独输入':w'保存退出】:")        # 放到了循环里面
  5.     if content.endswith(':w'):
  6.         break
  7.     f.write(content+"\n")      # 放到了后面并且增加了换行
  8. f.close()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-2 19:32:32 | 显示全部楼层
  1. filename = input("请输入文件名:")
  2. f = open(filename,'w')
  3. while True:
  4.     content = input("请输入内容【单独输入':w'保存退出】:")
  5.     if content == ':w':
  6.         break
  7.     f.write(content)
  8. f.close()

复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-2 19:33:50 | 显示全部楼层    本楼为最佳答案   
本帖最后由 一个账号 于 2020-2-2 19:36 编辑

你想要的效果是不是这样:
  1. filename = input("请输入文件名:")
  2. f = open(filename,'w')
  3. while True:
  4.     content = input("请输入内容【单独输入':w'保存退出】:")        # 放到了循环里面
  5.     if content.endswith(':w'):
  6.         break
  7.     f.write(content+"\n")      # 放到了后面并且增加了换行
  8. f.close()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-2 20:08:58 | 显示全部楼层

                               
登录/注册后可看大图

要的效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-2 20:11:10 | 显示全部楼层
一个账号 发表于 2020-2-2 19:33
你想要的效果是不是这样:

content = input("请输入内容【单独输入':w'保存退出】:")
这个不要放循环里的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-2 20:12:43 | 显示全部楼层

content = input("请输入内容【单独输入':w'保存退出】:")
这个不要放循环里的,我要的效果下面有个图,这个是29讲的习题。
给的答案能看懂
我只是在纠结,为啥 endswith(),那些判断没有用,是我写错了还是咋地
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-2 20:17:11 | 显示全部楼层
redforce 发表于 2020-2-2 20:12
content = input("请输入内容【单独输入':w'保存退出】:")
这个不要放循环里的,我要的效果下面有个图 ...

不放在循环中,input能输入多行内容吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-2 20:18:35 | 显示全部楼层
冬雪雪冬 发表于 2020-2-2 20:17
不放在循环中,input能输入多行内容吗?

可以多行输入的,我这只是输入:w没有结束
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-2 22:31:25 | 显示全部楼层
redforce 发表于 2020-2-2 20:18
可以多行输入的,我这只是输入:w没有结束

你确定吗?你的代码根本行不通!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-3 10:55:22 | 显示全部楼层
本帖最后由 一个账号 于 2020-2-3 12:11 编辑
redforce 发表于 2020-2-2 20:12
content = input("请输入内容【单独输入':w'保存退出】:")
这个不要放循环里的,我要的效果下面有个图 ...


确实可以一直输入,因为一直再循环。只不过不能保存在 content 这个变量里面。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-3 10:59:48 | 显示全部楼层
本帖最后由 一个账号 于 2020-2-3 11:00 编辑
redforce 发表于 2020-2-2 20:11
content = input("请输入内容【单独输入':w'保存退出】:")
这个不要放循环里的


第一次输入完回车后 python 一直写入到那个文件里,一直循环,所以你能输入。比如运行下面的代码,执行后是不是可以输入?
  1. while 1:
  2.     pass
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-3 11:00:19 | 显示全部楼层
本帖最后由 一个账号 于 2020-2-3 11:56 编辑
zltzlt 发表于 2020-2-2 22:31
你确定吗?你的代码根本行不通!


确实可以一直输入,因为一直再循环。只不过不能保存在 content 这个变量里面。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-3 11:35:24 | 显示全部楼层
一个账号 发表于 2020-2-3 11:00
确实可以一直输入,因为一直再循环。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-3 11:54:46 | 显示全部楼层
本帖最后由 一个账号 于 2020-2-3 11:56 编辑


确实可以一直输入,因为一直再循环。只不过不能保存在 content 这个变量里面。

gif.gif


gif2.gif
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-3 12:00:31 | 显示全部楼层
本帖最后由 zltzlt 于 2020-2-3 12:01 编辑
一个账号 发表于 2020-2-3 11:54
确实可以一直输入,因为一直再循环。只不过不能保存在 content 这个变量里面。


不循环也能输入啊

20200203_115952.gif
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-3 12:07:28 | 显示全部楼层
zltzlt 发表于 2020-2-3 12:00
不循环也能输入啊

我知道,只要是等待的都可以输入。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-3 12:08:27 | 显示全部楼层
一个账号 发表于 2020-2-3 12:07
我知道,只要是等待的都可以输入。

现在不是纠结这个问题的时候
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-3 14:24:10 | 显示全部楼层
一个账号 发表于 2020-2-3 11:00
确实可以一直输入,因为一直再循环。只不过不能保存在 content 这个变量里面。

不能保存的原因是没有执行f.close()。因为没有退出循环,也就是输入:w的时候没有结束循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-3 14:44:15 | 显示全部楼层
以下两种方式测试通过。endswith测试有效。切片方式没搞定,不知道能否行得通
确实要在循环里放一个content = input(),input默认的字符为空
谢谢 @zltzlt  @一个账号

  1. filename = input("请输入文件名:")
  2. print("请输入内容【单独输入':w'保存退出】:")

  3. f = open(filename,'w')
  4. while True:
  5.     content = input()
  6.     if content.endswith(':w'):
  7.         break
  8.     else:
  9.         f.write('%s\n' % content)

  10.    
  11. f.close()
复制代码

  1. filename = input("请输入文件名:")
  2. print("请输入内容【单独输入':w'保存退出】:")

  3. f = open(filename,'w')
  4. while True:
  5.     content = input()
  6.     if content != ':w':
  7.         break
  8.     else:
  9.         f.write('%s\n' % content)

  10.    
  11. f.close()
复制代码




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 20:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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