如何附加到文件而不是创建具有相同名称的新文件

时间:2019-04-04 14:26:42

标签: python python-3.6

我正在尝试在python文件的开头添加一些文本,但是不是将文本附加到文件,而是创建了一个具有相同名称的新文件并写入该文件。

#!/usr/bin/env python3
import os
files = 'f0_ascii'
x = 0
for file in os.listdir(files):
    x += 1
    with open(file, 'a') as file2:
        y = 0
        for line in file:
            y += 1
        file2.seek(0, 0)
        string_in_string = "sometext {}".format(y - 10)
        file2.write(string_in_string)
        file2.close()
        if x == 1:
            exit()

我希望它在现有文件的开头加上"sometext {}".format(y-10)

1 个答案:

答案 0 :(得分:0)

如果指定了文件夹目录,它将起作用:

import os
files = 'my_folder'


def line_prepender(filename, line):
    with open(filename, 'r+') as f:
        content = f.read()
        f.seek(0, 0)
        f.write(line.rstrip('\r\n') + '\n' + content)


for file in os.listdir(files):

    y = 0
    for line in file:
        y += 1
    line_prepender(r'my_folder\{}'.format(file), "sometext {}".format(y - 10))

如果未指定,open()只会在当前目录中找不到您的文件,因此它将在该目录中创建并打开它们。

编辑:使用here中的一些代码来使此脚本完全执行您想要的操作。