Search code examples
pythonappendfopenfwrite

insert string on first line use python3


i want insert

# -*- coding: utf-8 -*-

to multi file's first line in multi path (include sub directory and diff directory) when i use open + whrite python code the result will be append to bottom

import os

def show_folder_content(folder_path):
    folder_content = os.listdir(folder_path)
    for item in folder_content:
        if os.path.isdir(folder_path + '\\' + item):
            print('folder:' + item)

            show_folder_content(folder_path + '\\' + item)
        elif os.path.isfile(folder_path + '\\' + item):
            print('file:' + item)
            f = open(folder_path + '\\' + item, "a")
            f.write("\n# -*- coding: utf-8 -*-")
            f.close()
        else:
            print('other:' + item)

target_folder = 'F:\\project\\test_source'
show_folder_content(target_folder)

how to append the top of all files (first line) cause' i want bath make my code support utf8


Solution

  • # -*- coding: utf-8 -*-
    import os
    
    def show_folder_content(folder_path):
        folder_content = os.listdir(folder_path)
        for item in folder_content:
            if os.path.isdir(folder_path + '\\' + item):
                print('folder:' + item)
    
                show_folder_content(folder_path + '\\' + item)
            elif os.path.isfile(folder_path + '\\' + item):
                print('file:' + item)
                with open(folder_path + '\\' + item, "r+",encoding='UTF-8') as f:
                    if item.endswith(".py"):
                        s = f.read(); f.seek(0); f.write("# -*- coding: utf-8 -*-\n" + s)
    
            else:
                print('other:' + item)
    
    target_folder = 'F:\\project\\test'
    show_folder_content(target_folder)