课后作业关于创建写入新文件
请教各位学长一个关于写新文件的问题:这个程序:
def create_file(file_name):
f = open(file_name, 'w', encoding = 'utf-8')
print('请输入内容, 按\':w\'保存退出: ')
while True:
create_file = input()
if create_file != ':w':
f.write('%s\n' % create_file)
else:
break
f.close()
file_name = input('Please input file name: ')
create_file(file_name)
在‘创建’并‘打开’新文件后:
在while True循环的第一行:
create_file = input()是表示输入了
可是f.write('%s\n' % create_file)也是在文件里输入东西。
我运行程序时,在给文件起名后,感觉就是在输入了一大堆东西,不晓得什么地方输入的是 create_file = input()什么地方是 f.write('%s\n' % create_file)。
create_file = input() 与
f.write('%s\n' % create_file)
的根本区别是什么?
谢谢
第一个是输入一个字符串,第二个是写入输入的字符串
input 函数 接受用户输入并将其转为字符串返回,并没用写入文件之中去
f.write 是对 一个文件对象的写入,参数必须要填字符串类型,并将这个字符串写入文件当中去
单独看这些区别就很大了,一个 input 只是单纯的在代码中接受用户输入的数据并转为字符串
而 f.write 是对文件对象的写入
input是跟用户交互,而write是程序跟系统交互。
也就是说,input是用于接收用户的输入,这一步是你程序可控的。
然后程序用write指令跟系统进行交互,写入文件,这一步是程序跟系统交互的过程,是不可控的。 好的,谢谢,但我运行程序时,输入文件名后,输了一大堆这个:
jflakdfas
dkfsajlsafdjfajfkdjflajldjf
fjdasjflajsfdklajf
然后按:w退出
我就不知道哪个是我在 create_file = input()输入的,
哪些是在f.write('%s\n' % create_file)下输入的。
‘%s\n’是什么意思? 还有,在这个程序中,create_file = input() 的作用是什么?它与f.write('%s\n' % create_file)缺一不可吗? 本帖最后由 Twilight6 于 2020-6-30 08:50 编辑
mhou022 发表于 2020-6-30 08:24
好的,谢谢,但我运行程序时,输入文件名后,输了一大堆这个:
jflakdfas
dkfsajlsafdjfajfkdjflajldjf
你回复他人要点击回复,否则别人看不见你的回复
f.write('%s\n' % create_file) 是不能输入的呀,他是负责将字符串写入文本中去....
只有 input 函数 才能输入!
'%s\n'%create_file 这边就是百分号格式化,%s 为格式化字符串的占位符,将 create_file 变量的值与 %s 进行替换
而这里的 \n 就是换行符呀,没有这个 \n 文件不会自动换行导致你写入全在一行
Twilight6 发表于 2020-6-30 08:47
你回复他人要点击回复,否则别人看不见你的回复
f.write('%s\n' % create_file) 是不能输入的呀 ...
明白了,多谢{:10_282:} mhou022 发表于 2020-6-30 09:05
明白了,多谢
没事 客气了~~~ 又来问题了,不好意思:
这次是关于电脑执行顺序:
while True:
create_file = input()
if create_file != ':w':
f.write('%s\n' % create_file)
else:
break
在这个while循环中,电脑工作的顺序是怎样的。
比如我通过create_file = input()命令输入了这样一段话:
“fishC file, fishC file,
This file belongs to fishC.”
电脑是说:我输入一个字符它判断一次,还是说等我输完了以后,直到输入 ':w'退出,它才截止,将我之前输入的一股脑写入create_file里?
是说,电脑看我输入:'f',然后if判断,'f' != ':w',好的,回到循环,等我敲击下一个字符,‘i’, 电脑再将‘i’进行判断,好的,也 != ':w', 下一个, 我敲‘s’, 电脑再判断,然后
再回到while开始,以此类推?还是当我输入整个
“fishC file, fishC file,
This file belongs to fishC.”后,一起,一个字符一个字符地判断,然后再写入?
因为我的印象里:好像是在用something = input()时,在执行程序时,我们输入东西后,是点击回车,电脑才判定为输入吧?
页:
[1]