この検索と置換プログラムを作成しました。しかし、変更を加えたいので、一度に複数のファイルを検索して置換できます。さて、選択した任意のフォルダまたはディレクトリから一度に複数のファイルを選択できるようにする方法はありますか。
ファイルダイアログウィンドウを使用してファイルを選択するのに役立つコードを以下に示しますが、エラーが発生しています。それを修正するのを手伝ってもらえますか?完全なトレースバック エラーは次のとおりです。
Traceback <most recent call last>:
File "replace.py", line 24, in <module>
main()
File "replace.py", line 10, in main
file = tkFileDialog.askopenfiles(parent=root,mode='r',title='Choose a file')
File "d:\Python27\lib\lib-tk\tkFileDialog.py",line 163, in askopenfiles
ofiles.append(open(filename,mode))
IOError: [Errno 2] No such file or directory: u'E'
コードは次のとおりです。「file」を「filez」に、「askopenfiles」を「askopenfilenames」に変更して、ようやくこのコードが機能するようになりました。選択したファイルの単語を置き換えることができました。唯一のことは、2 つのファイルを選択すると機能しないことです。複数のファイルで機能するようにするには、ループを追加する必要があるかもしれません。しかし、これは一種の試行錯誤であり、なぜそれが機能したのかを本当に知りたい. このtkinterとファイルダイアログのことを完全に理解するのに役立つ本や何かがありますか? とにかく、以下のコードを変更して、現在の作業コードを表示しました。
#replace.py
import string
def main():
#import tkFileDialog
#import re
#ff = tkFileDialog.askopenfilenames()
#filez = re.findall('{(.*?)}', ff)
import Tkinter,tkFileDialog
root = Tkinter.Tk()
filez = tkFileDialog.askopenfilenames(parent=root,mode='r',title='Choose a file')
#filez = raw_input("which files do you want processed?")
f=open(filez,"r")
data=f.read()
w1=raw_input("what do you want to replace?")
w2= raw_input("what do you want to replace with?")
print data
data=data.replace(w1,w2)
print data
f=open(filez,"w")
f.write(data)
f.close()
main()
編集: 以下の返信の 1 つは、ファイル ダイアログ ウィンドウについてのアイデアを与えてくれました。現在、tkinter ウィンドウを使用して複数のファイルを選択できますが、置換を進めることはできません。それはエラーを出しています。ファイルダイアログを使用するさまざまな方法を試しましたが、さまざまな方法でさまざまなエラーが発生しています。方法の 1 つを削除する代わりに、ハッシュ記号を前に付けてコメントにするようにしました。