0

こんにちは、ファイル 100 個のファイルのリストがあります。

各ファイルが含まれています

a = a & "blahblhablhablha"
a = a & "blahblhablhablha"
a = a & "blahblhablhablha"
a = a & "blahblhablhablha"

すべてのファイルをこのように置き換えてほしい

public file1
a1 = a1 & "blahblhablhablha"
a1 = a1 & "blahblhablhablha"
a1 = a1 & "blahblhablhablha"
a1 = a1 & "blahblhablhablha"
a1x = a1
end file

ファイル2では、

public file2
a2 = a2 & "blahblhablhablha"
a2 = a2 & "blahblhablhablha"
a2 = a2 & "blahblhablhablha"
a2x = a2
end file

そして…最後の100ファイルまで

最後のファイルが次のようになっているとしましょう

public file100
a100 = a100 & "blahblhablhablha"
a100 = a100 & "blahblhablhablha"
a100 = a100 & "blahblhablhablha"
a100x = a100
end file
4

1 に答える 1

1

Notepad ++ではそれを行うことはできません!

その理由は、正規表現を使用すると、編集するファイルの名前や編集済みファイルのカウンターにアクセスできないためです (これが、この場合のファイルの編集方法です)。理論的には、各ファイルを手動で処理し、毎回ファイル名をハードコーディングすることでそれを行うことができますが、jgritty が示唆したように、sed、Python、Perl などのより適切なツールを使用するのが最善の方法です。

だからここにあなたの問題に対するPythonの解決策があります:

from os import listdir
from os.path import isfile,join

path="yourfolder" #change it to your path of files

for filename in listdir(path): #read all entries from path
    if isfile(join(path,filename)): #keep only the files
        with open(join(getcwd(),path,filename),"r+") as file: #open each file
            num=filename #I assume that the files are named 1,...,100. If that's not the case then change this to a counter
            content=file.readlines() #pull the file contents
            content.insert(0,"public file%s\n" % num) #insert the 1st line
            content.append("a%sx = a%s\nend file\n" % (num,num)) #append the last lines
            file.seek(0) #reset file's current position in order to overwrite it
            for line in content:
                line=line.replace("a = a","a%s = a%s" % (num,num)) #edit the lines
                file.write(line) #write the output
于 2013-11-10T07:49:52.397 に答える