鱼C论坛

 找回密码
 立即注册
查看: 2119|回复: 8

[已解决]shell模式下 input多行字符

[复制链接]
发表于 2022-4-13 11:21:45 | 显示全部楼层 |阅读模式

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

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

x
各位大神 问一个比较初级的问题。。。。


就是关于python里我想输入在shell里 input里 多行字符 应该怎么输啊,是直接enter 报错了。。。 \n 存入的文本默认为字符串输进去了(如图)

所以多行字符要input需要怎么弄啊 ,我看小甲鱼的这个多行直接换行就输入了 。。

最佳答案
2022-4-13 18:28:45
本帖最后由 hrpzcf 于 2022-4-13 18:33 编辑
Victor0321 发表于 2022-4-13 15:34
emmm 对就是我想知道 shell模式下如何输入多行文字啊,因为我一按enter 就自动input就切完了


既然input只读一行那就加个循环让它一直读
  1. def save_file(file_name=input("文件名:")):
  2.     ####### 方法一
  3.     # with open(file_name, "w", encoding="utf-8") as f:
  4.     #     content = []
  5.     #     while True:
  6.     #         line = input()
  7.     #         if line.endswith(":w"):
  8.     #             content.append(line[:-2])
  9.     #             break
  10.     #         else:
  11.     #             content.append(line + "\n")
  12.     #     f.writelines(content)

  13.     ###### 方法二
  14.     with open(file_name, "w", encoding="utf-8") as f:
  15.         for line in iter(input, ":w"):
  16.             if line.endswith(":w"):
  17.                 f.write(line[:-2])
  18.                 break
  19.             f.write(line + "\n")

  20.     ###### 其他方法略


  21. if __name__ == "__main__":
  22.     save_file()
复制代码
捕获.JPG
214002l8mwwcb52f9f5q9f.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-13 11:46:33 | 显示全部楼层
重复 input 吧......
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-13 11:52:17 From FishC Mobile | 显示全部楼层
你在说什么,报错在哪里
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-13 12:15:03 | 显示全部楼层
hrpzcf 发表于 2022-4-13 11:52
你在说什么,报错在哪里

文件内容
'''小客服:小甲鱼,今天有客户问你有没有女朋友?
小甲鱼:咦??
小客服:我跟她说你有女朋友了!
小甲鱼:。。。。。。
小客服:她让你分手后考虑下她!然后我说:"您要买个优盘,我就帮您留意下~"
小甲鱼:然后呢?
小客服:她买了两个,说发一个货就好~
小甲鱼:呃。。。。。。你真牛!
小客服:那是,谁让我是鱼C最可爱小客服嘛~
小甲鱼:下次有人想调戏你我不阻止~
小客服:滚!!!'''
Traceback (most recent call last):
  File "C:\Users\zhuzj\Desktop\python\test\老教材\29.py", line 14, in <module>
    save_file(file_name = input('文件名'),file_content = input('文件内容') )
  File "C:\Users\zhuzj\Desktop\python\test\老教材\29.py", line 4, in save_file
    f = open(file_name,file_type)
ValueError: Must have exactly one of create/read/write/append mode and at most one plus
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-13 13:28:47 | 显示全部楼层
结尾没输入:w, 里面会取最后一个冒号后面的内容当作文件打开的模式, 如'w'写入模式, 'r'读取模式
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-13 14:35:30 | 显示全部楼层
Victor0321 发表于 2022-4-13 12:15
文件内容
'''小客服:小甲鱼,今天有客户问你有没有女朋友?
小甲鱼:咦??

不管你是一行一行输入还是粘贴多行,file_content=input("文件内容:")读一行就结束了,file_type=file_content.split()[-1]是得不到正确的结果的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-13 15:34:51 | 显示全部楼层
hrpzcf 发表于 2022-4-13 14:35
不管你是一行一行输入还是粘贴多行,file_content=input("文件内容:")读一行就结束了,file_type=file_c ...

emmm 对就是我想知道 shell模式下如何输入多行文字啊,因为我一按enter 就自动input就切完了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-13 18:28:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 hrpzcf 于 2022-4-13 18:33 编辑
Victor0321 发表于 2022-4-13 15:34
emmm 对就是我想知道 shell模式下如何输入多行文字啊,因为我一按enter 就自动input就切完了


既然input只读一行那就加个循环让它一直读
  1. def save_file(file_name=input("文件名:")):
  2.     ####### 方法一
  3.     # with open(file_name, "w", encoding="utf-8") as f:
  4.     #     content = []
  5.     #     while True:
  6.     #         line = input()
  7.     #         if line.endswith(":w"):
  8.     #             content.append(line[:-2])
  9.     #             break
  10.     #         else:
  11.     #             content.append(line + "\n")
  12.     #     f.writelines(content)

  13.     ###### 方法二
  14.     with open(file_name, "w", encoding="utf-8") as f:
  15.         for line in iter(input, ":w"):
  16.             if line.endswith(":w"):
  17.                 f.write(line[:-2])
  18.                 break
  19.             f.write(line + "\n")

  20.     ###### 其他方法略


  21. if __name__ == "__main__":
  22.     save_file()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

匿名鱼油
匿名鱼油  发表于 2022-4-13 18:56:17
不知道
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 19:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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