|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
学友们好, 跟甲鱼老师学了这么久,我还是保持着一听就会,一做就废的属性, 小甲鱼老师用心编写的课后题都成了我的梦魇了,好在 有各位学长热心指教每次还能进步一点点,
说说这个 0 号题
要求 输入 :w 是能退出 文件编辑并报错, 说白了考点就是.close()
file_name = input('请输入文件名:')
f = open(file_name, 'w')
print('请输入内容【单独输入\':w\'保存退出】:')
while True:
write_some = input()
if write_some != ':w':
f.write('%s\n' % write_some)
else:
break
f.close()
这是老师的答案运行没有问题
=============================================================
file_name =input ('请输入文件名:')
f=open (file_name,'w')
content=input ('请输入文件内容【单独输入’:w‘保存退出】:')
key=':w'
while True:
if key not in content:
f.write(content)
else:
break
f.close()
这是我的编码, 我发现问题是除非我一开始就输入:W 能够按设计 退出并保存, 如果是我输入多行后,再输入:w , 系统并没有结束循环还是要我输入。 看了几圈,我没发现错误所在,望前辈们不吝赐教。
还有一个扩展问题,如果我想 自己设定文件保存路径,
那么 在第二行 f =open('d:\file_name', 'w') 这样可行吗, 加了 单引号 还会给带入 input 后面输入的值吗? (因为认知里,带‘’ 就是字符串了, 所以这个open()中需要带‘’总觉得别扭)谢谢。
可以通过字符串的拼接来完成你的目的
以D盘为例
简单修改了一下你的代码
如果是D盘下文件夹,filepath需要写D://文件夹//,或者用r''的形式来表示
- filepath = 'D://' #指定路径为D盘,二级文件需加'//'
- file_name =filepath+input ('请输入文件名:') #直接输入D盘下的文件名,二级文件名需要加'//'
- f=open (file_name,'w') #打开文件
- print('请输入文件内容【单独输入":w"保存退出】:') #打印文字
- key=':w' #设定关键字
- while True:
- content=input () #输入文字
- if key not in content: #判断关键字是否不在文字内
- f.write(content) #写入数据
- f.write('\n') #写入回车
- else:
- break
- f.close() #关闭并保存
复制代码
|
-
题干
|