言語、基本的な文法、入力と出力、ファイル操作、データベース操作、通信(ソケットなど)を知っていれば、基本的に開発を開始できます。残りの知識はゆっくりと学習され、開発に蓄積されます。これは、新しい言語を学ぶ最初の部分でもあります。今日では、非常に多くの異なる言語がありますが、最終的な分析では、これらのコンテンツです。
また、新しいものの使い方がわからないように、学習に迷うこともあります。それで、上記のすべての点を見て、あなたが頭の中で考えたプログラムを始めてください。
あまり意味がないので、トピックを入力してください...私はかつて[C言語トラバーサルディレクトリ](https://www.leavesongs.com/API/File.html)、[PHPトラバーサルディレクトリ](https://www.leavesongs.com/PHP/phpdelfile.html)を書きましたが、今日はpythonトラバーサルディレクトリについて説明します。そして、私が上で言ったことを学びましょう:ファイル操作。
プログラムの目的は、特定のディレクトリをトラバースし、その中のすべてのファイルのコンテンツの特定のセクションを置き換えることです。
import os
def replace_str(FilePath,SourceStr,ObjectStr):
file =open(FilePath,"r")
str = file.read()
str = str.replace(SourceStr,ObjectStr)
file.close()
file =open(FilePath,"w")
file.write(str)
file.close()
def getfile(path):for file in os.listdir(path):
file = os.path.join(path,file)if os.path.isdir(file):getfile(file)else:replace_str(file,"abcd","")
rootpath ="e:\\01"getfile(rootpath)
ディレクトリをトラバースしたいので、最初にosモジュールをインポートします。 osをインポート
最初に2つの関数をスキップして、下の2行を確認してください。ルートパスディレクトリをトラバースして、それをgetfile関数に渡す必要があります。
getfileは再帰関数であり、ディレクトリをトラバースするには再帰を使用する必要があります。 os.listdir()を使用してすべてのファイル(ディレクトリとファイルを含む)を取得し、リストを取得し、.. inを使用してリストをトラバースし、os.path.isdir()関数を使用して現在のファイルがディレクトリかどうかを判断します。 。
ディレクトリの場合、getfile()関数は再帰的に実行されます。それ以外の場合は、replace_str()関数に入ります。
これはおそらくプロセスです。コードも非常にシンプルで、前の2つの記事と組み合わせると、理解するのは難しくありません。主なことは、タスクを完了するために3つの言語のそれぞれの長所と短所を比較して確認することです。
補足:
ディレクトリをトラバースします。実際、pythonのosモジュールにはすでに関数があります。
generator = os.walk(top,topdown=True,onerror=None)
返されるオブジェクトはジェネレータタイプのオブジェクトです。forステートメントを使用してトラバースする必要があります。
generator = os.walk(r"E:\Python\pro")for i in generator:
print i
iは実際には三元タプルであり、この時点でのディレクトリ、このディレクトリの下のフォルダ、およびこのディレクトリの下のファイルであることがわかります。したがって、上記のgetfile関数は次のように簡略化できます。
def getfile(path):
generator = os.walk(path)for(now_dir, _, file_list)in generator:for file in file_list:
file = os.path.join(now_dir, file)replace_str(file,"abc","")
Recommended Posts