我有一个类似下面的目录,其中包含大约50个“ SubDir”,但每个SubDir仅包含2个SubSubDirs(我称之为它们):
Parent Directory
|
+-- SubDir #1
| |
| +-- SubSubDir #1
| |
| +-- file1.csv
|
| +-- SubSubDir #2
| |
| +-- file2.csv
|
+-- SubDir #2
| |
| +-- SubSubDir #1
| |
| +-- file1.csv
|
| +-- SubSubDir #2
| |
| +-- file2.csv
.
.
.
我需要提取每个csv,并将其放置在与SubSubDir#1和#2相同的级别上。我有一个遍历每个脚本的脚本,但是所有CSV都放在了父目录下,因为我无法弄清楚如何将移动目标与os模块合并。
rootdir = "/Users/Downloads/Test"
for root, dirs, files in os.walk(rootdir):
for f in files:
if f.endswith('.csv'):
shutil.copy(os.path.join(root,f), rootdir)
我知道我在上面的代码中有rootdir,这就是为什么将CSV放在rootdir下的原因。
任何人都了解如何更改CSV复制的目的地。我假设某种方式将移动目标与os模块合并。到目前为止,我一直没有成功。预先感谢。
答案 0 :(得分:1)
您可以找到问题文件所在的目录的名称,然后找到那个的目录,并将其放在其中:
for root, dirs, files in os.walk(rootdir):
for f in files:
if f.endswith('.csv'):
fullpath = os.path.join(root, f)
shutil.copy(fullpath, os.path.dirname(os.path.dirname(fullpath)))