首页 > 解决方案 > 如何附加到文件而不是创建具有相同名称的新文件

问题描述

我正在尝试在 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)

标签: pythonpython-3.6

解决方案


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

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()则无法在当前目录中找到您的文件,因此它只是在那里创建并打开它们。

编辑:使用此处的一些代码使该脚本完全按照您的意愿执行。


推荐阅读