私はディレクトリの大量のリストを持っており、指定したディレクトリ/フォルダをある場所から別の場所にコピーしようとしていますが、「階層」を複製しようとしています。ファイルパスに基づいて複数のフォルダを作成する
list_of_dirs = [
'/serverA/user_data/2017_Jan/2017_01_25/reference/images/setA/',
'/serverA/user_data/2017_Jan/2017_01_26/reference/images/setA/',
]
lib_path = '/serverB/user_data'
dirs_length = len(list_of_dirs)
collate_date_names = []
def create_main_folder(main_folder_name):
base_folder_path = '{0}/{1}/'.format(lib_path, main_folder_name)
base_folder = os.path.dirname(base_folder_path)
if not os.path.exists(base_folder):
os.makedirs(base_folder_path)
def create_sub_date_folder(base_folder, folder_name):
folder_path = '{0}/{1}/{2}/'.format(lib_path, base_folder, folder_name)
base_folder = os.path.dirname(folder_path)
if not os.path.exists(base_folder):
os.makedirs(folder_path)
def main():
for directory in enumerate(list_of_dirs):
date_range_string = directory[1].split('/')[3]
create_main_folder(date_range_string)
if date_range_string in directory[1]:
folder_name = directory[1].split('/')[-2]
create_sub_date_folder(date_range_string, folder_name)
new_main_folder = '{0}/{1}'.format(lib_path, date_range_string)
new_folder_path = '{0}/{1}/{2}'.format(lib_path, date_range_string, folder_name)
subprocess.call('cp -r {0} {1}'.format(directory[1], new_main_folder), shell=True)
main()
split
コマンドを使用している間、私は単純に次の項目を取得しようとしていますように私は、これらの複数のフォルダを作成しようとしています方法は理想的ではないかもしれないと思われます。
私の上記のコードを実行しているが、これは私が見てい階層構造であり、それは私が欲しかったものではありません。
|- 2017_Jan
|--|-- 2017_01_25
|--|--|-- setA
|--|-- 2017_01_26
|--|--|-- setA
これは私が達成しようとしているものですに対し:
|- 2017_Jan
|--|-- 2017_01_25
|--|--|-- reference
|--|--|--|-- images
|--|--|--|--|-- setA
|--|-- 2017_01_26
|--|--|-- reference
|--|--|--|-- images
|--|--|--|--|-- setA
私はこの構造を作ることができる最良の方法は何ですか?
なぜだけではなく、[ 'os.makedirs()'](HTTPS://docs.python .org/3/library/os.html?highlight = os.makedirs#os.makedirs)? – JakeD