Python 2.7从文本文件中删除行

时间:2016-10-30 01:56:26

标签: python python-2.7

在Python 2.7中,我正在使用..

为文件写一行
f.write('This is a test')

如何删除此行?文本文件中只有一行,所以可以/应该删除文件并创建一个新文件吗?

或者有没有办法删除我添加的行?

3 个答案:

答案 0 :(得分:1)

您可以删除该文件并创建一个新文件或截断现有文件

# the original file
with open("test.txt", "w") as f:
    f.write("thing one")

# delete and create a new file - probably the most common solution
with open("test.txt", "w") as f:
    f.write("thing two")

    # truncate an existing file - useful for instance if a bit
    # of code as the file object but not file name
    f.seek(0)
    f.truncate()
    f.write("thing three")

# keep a backup - useful if others have the old file open
os.rename("test.txt", "test.txt.bak")
with open("test.txt", "w") as f:
    f.write("thing four")

# making live only after changes work - useful if your updates
# could fail
with open("test.txt.tmp", "w") as f:
    f.write("thing five")
os.rename('test.txt.tmp', 'test.txt')

哪个更好?它们都是......取决于其他设计目标。

答案 1 :(得分:0)

在Python中,您无法从文件中删除文本。相反,您可以写入文件。

write函数有效地删除文件中的任何内容,并使用您作为参数传递的字符串保存文件。

实施例

open_file=open("some file","w")
open_file.write("The line to write")

现在文件中有“要写的行”作为内容。

修改 写入功能更准确地从光标所在位置写入。在w模式下打开时,光标位于文件的前面,并写入文件中的所有内容。

感谢bli指出这一点。

答案 2 :(得分:0)

最佳做法是,在打开文件时始终使用with,以确保即使您未拨打close()

,也始终会关闭您的文件
with open('your_file', 'w') as f:
    f.write('new content')