ysk0518 发表于 2020-11-10 16:42:20

python 29课 动手做0

def file_write(file_name):
    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('请输入文件名:')
file_write(file_name)

试了半天并不能保存输入的内容,【单独输入\':w\'保存退出】,这个操作如何才能执行呀
然后我改成这个样子就能保存,请问这样书写是也正确

def file_write(file_name):
    f = open(file_name, 'w')
    print('请输入内容【单独输入\':w\'保存退出】:')

    while True:
      write_some = input()
      if write_some != ':w':
            f.write('%s\n' % write_some)
            f.close()】
      else:
            break

   

file_name = input('请输入文件名:')
file_write(file_name)

冬雪雪冬 发表于 2020-11-10 16:49:41

我在我的机器上,按第一个程序做,可以保存。

笨鸟学飞 发表于 2020-11-10 16:58:07

write() 方法用于向文件中写入指定字符串。

在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。
=========所以你是不是说反了???============
写入文件要这样操作:
1、open()方法打开文件
2、write()方法写入字符串
3、close()方法关闭         
而你发的代码,第1种是打开文件,再持续写入,最后关闭,理论上是没问题的
第2种是错误的,打开文件,写入,关闭,再循环写入??你都关闭了往哪去写?
另外推荐你掌握更好的方法
with open(file_name,'w') as file:
    f.write('str')   #'str'表示欲写入的字符串,就2行代码就行了,会自动调用close()方法,不需要手动调用

你只要循环把用户输入的字符串比对,不等于保存命令,就继续添加字符串,是保存命令则跳出循环,再执行这2行代码就可以了

笨鸟学飞 发表于 2020-11-10 17:04:07

参考代码:
def file_write(file_name):
    print('请输入内容【单独输入\':w\'保存退出】:')
    write_some = ''
    while True:
      temp = input()
      if temp == ':w':
            break
      else:
            write_some += temp+'\n'
    with open(file_name,'w') as f:
      f.write(write_some)

file_name = input('请输入文件名:')
file_write(file_name)
页: [1]
查看完整版本: python 29课 动手做0