将目录的所有内容移动到 Python 中的另一个目录
Moving all contents of a directory to another in Python
几个小时以来,我一直在努力解决这个问题,但没有成功。我有一个目录列表,这些目录有自己的子目录和其他文件。我试图遍历所有这些并将它们的所有内容移动到特定位置。我尝试了 shutil 和 glob,但无法正常工作。我什至尝试使用 subprocess.call
运行 shell 命令,但这也没有用。我知道它不起作用,因为我无法正确应用它,但我找不到任何将目录的所有内容移动到另一个目录的解决方案。
files = glob.glob('Food101-AB/*/')
dest = 'Food-101/'
if not os.path.exists(dest):
os.makedirs(dest)
subprocess.call("mv Food101-AB/* Food-101/", shell=True)
# for child in files:
# shutil.move(child, dest)
我正在尝试将 Food101-AB 中的所有内容移动到 Food-101
尝试将 call
函数更改为 run
以便为您的 shell 命令检索 stdout
、stderr
和 return code
:
from subprocess import run, CalledProcessError
source_dir = "full/path/to/src/folder"
dest_dir = "full/path/to/dest/folder"
try:
res = run(["mv", source_dir, dest_dir], check=True, capture_output=True)
except CalledProcessError as ex:
print(ex.stdout, ex.stderr, ex.returncode)
shutil 标准库的模块是要走的路:
>>> import shutil
>>> shutil.move("Food101-AB", "Food-101")
如果您不想移动 Food101-AB
文件夹本身,请尝试使用此方法:
import shutil
import os
for i in os.listdir("Food101-AB"):
shutil.move(os.path.join("Food101-AB", i), "Food-101")
有关move
函数的更多信息:
https://docs.python.org/3/library/shutil.html#shutil.move
几个小时以来,我一直在努力解决这个问题,但没有成功。我有一个目录列表,这些目录有自己的子目录和其他文件。我试图遍历所有这些并将它们的所有内容移动到特定位置。我尝试了 shutil 和 glob,但无法正常工作。我什至尝试使用 subprocess.call
运行 shell 命令,但这也没有用。我知道它不起作用,因为我无法正确应用它,但我找不到任何将目录的所有内容移动到另一个目录的解决方案。
files = glob.glob('Food101-AB/*/')
dest = 'Food-101/'
if not os.path.exists(dest):
os.makedirs(dest)
subprocess.call("mv Food101-AB/* Food-101/", shell=True)
# for child in files:
# shutil.move(child, dest)
我正在尝试将 Food101-AB 中的所有内容移动到 Food-101
尝试将 call
函数更改为 run
以便为您的 shell 命令检索 stdout
、stderr
和 return code
:
from subprocess import run, CalledProcessError
source_dir = "full/path/to/src/folder"
dest_dir = "full/path/to/dest/folder"
try:
res = run(["mv", source_dir, dest_dir], check=True, capture_output=True)
except CalledProcessError as ex:
print(ex.stdout, ex.stderr, ex.returncode)
shutil 标准库的模块是要走的路:
>>> import shutil
>>> shutil.move("Food101-AB", "Food-101")
如果您不想移动 Food101-AB
文件夹本身,请尝试使用此方法:
import shutil
import os
for i in os.listdir("Food101-AB"):
shutil.move(os.path.join("Food101-AB", i), "Food-101")
有关move
函数的更多信息:
https://docs.python.org/3/library/shutil.html#shutil.move