正确的方式写入文件?

我习惯于print >>f, "hi there"

但是,似乎print >>已被弃用。 建议的方式是做什么?

更新:关于所有那些带有"n"答案......这是通用还是Unix特有的? IE,我应该在Windows上做"rn"吗?


这应该如下简单:

with open('somefile.txt', 'a') as the_file:
    the_file.write('Hellon')

从文档:

在编写以文本模式打开的文件时(默认),不要使用os.linesep作为行终止符; 在所有平台上使用单个' n'。

一些有用的阅读:

  • with声明
  • open()
  • 'a'用于追加或使用
  • 'w'用截断符写
  • os (特别是os.linesep

  • 你应该使用Python 2.6+以后的print()函数

    from __future__ import print_function  # Only needed for Python 2
    print("hi there", file=f)
    

    对于Python 3,您不需要import ,因为print()函数是默认值。

    另一种方法是使用:

    f = open('myfile', 'w')
    f.write('hi theren')  # python will convert n to os.linesep
    f.close()  # you can omit in most cases as the destructor will call it
    

    引用有关换行符的Python文档:

    在输出中,如果换行符是None,则写入的任何'n'字符都将转换为系统默认行分隔符os.linesep 。 如果换行符是'' ,则不会发生翻译。 如果换行符是任何其他合法值,则写入的任何'n'字符都将转换为给定的字符串。


    python文档推荐这种方式:

    with open('file_to_write', 'w') as f:
        f.write('file contents')
    

    所以这就是我这样做的方式:)

    来自docs.python.org的声明:

    处理文件对象时,最好使用'with'关键字。 这有一个好处,就是文件在套件结束后可以正常关闭,即使在路上出现异常。 它也比编写等价的try-finally块短得多。

    链接地址: http://www.djcxy.com/p/5365.html

    上一篇: Correct way to write line to file?

    下一篇: Determine the type of an object?