私は1つのディレクトリ内のすべてのファイルをサブディレクトリに整理するコードを作成しようとしています。 2017.2.3,2016.2.5,2015.5.6,2014.3.5という名前のフォルダに、元のディレクトリ内の2017,2016,2015,2014というラベルが付けられています。 2.7.13shutil.move()を使用してサブフォルダにファイルを移動しようとしています
私が使用しているコードを使用すると、以下の通りです:任意のフィードバックをいただければ幸いです
Traceback (most recent call last):
File "D:\Documents\Programs\Sigma_File_Move.py", line 24, in <module>
shutil.move(os.path.join(source, files), dest1)
File "D:\Python27\ArcGIS10.4\lib\ntpath.py", line 65, in join
result_drive, result_path = splitdrive(path)
File "D:\Python27\ArcGIS10.4\lib\ntpath.py", line 116, in splitdrive
normp = p.replace(altsep, sep)
AttributeError: 'list' object has no attribute 'replace'
:
import os, shutil
root_path = ('D:\Sigma\Rides')
folders = ['2016', '2017', '2018', '2019', '2020']
for folder in folders:
os.mkdir(os.path.join(root_path,folder))
source = os.listdir('D:\\Sigma\\Rides')
dest1 = ('D:\\Sigma\\Rides\\2016')
dest2 = ('D:\\Sigma\\Rides\\2017')
dest3 = ('D:\\Sigma\\Rides\\2018')
dest4 = ('D:\\Sigma\\Rides\\2019')
dest5 = ('D:\\Sigma\\Rides\\2020')
for files in source:
if (files.startswith('2016_')):
shutil.move(os.path.join(source, files), dest1)
if (files.startswith('2017')):
shutil.move(os.path.join(source, files), dest2)
if (files.startswith('2018')):
shutil.move(os.path.join(source, files), dest3)
if (files.startswith('2019')):
shutil.move(os.path.join(source, files), dest4)
if (files.startswith('2020')):
shutil.move(os.path.join(source, files), dest5)
これは私がreceieveエラーです。
に変更する必要があります。実際にはパスを作成するのに 'abspath'を使うことはできません。あなたのコードで 'root_path'変数を使うように変更しました。 – anupsabraham