我目前正在使用GitHub的一个片段来自动化一个将文件夹中的文件移动到较小子文件夹的简单项目。下面是我从GitHub找到的代码:
# -*- coding: utf-8 -*-
# @author: Peter Lamut
import argparse
import os
import shutil
N = 10 # the number of files in seach subfolder folder
def move_files(abs_dirname):
"""Move files into subdirectories."""
files = [os.path.join(abs_dirname, f) for f in os.listdir(abs_dirname)]
i = 0
curr_subdir = None
for f in files:
# create new subdir if necessary
if i % N == 0:
subdir_name = os.path.join(abs_dirname, '{0:03d}'.format(i / N + 1))
os.mkdir(subdir_name)
curr_subdir = subdir_name
# move file to current dir
f_base = os.path.basename(f)
shutil.move(f, os.path.join(subdir_name, f_base))
i += 1
def parse_args():
"""Parse command line arguments passed to script invocation."""
parser = argparse.ArgumentParser(
description='Split files into multiple subfolders.')
parser.add_argument('src_dir', help='source directory')
return parser.parse_args()
def main():
"""Module's main entry point (zopectl.command)."""
args = parse_args()
src_dir = args.src_dir
if not os.path.exists(src_dir):
raise Exception('Directory does not exist ({0}).'.format(src_dir))
move_files(os.path.abspath(src_dir))
if __name__ == '__main__':
main()
我对Python很新,所以这是一个非常基本的问题,我确信我只是忽略了答案。文件路径在这个片段中的哪个位置将Python引导到将被分解为子文件夹的主文件夹?
我已经从Windows文件浏览器中复制了地址,我不确定在哪里指导程序。
最后,文件路径是否保留为“C:/ users / yourNameHere / ...”这样的格式?我是否需要将地址放在单引号或括号中?
正如我所说,我确信这很简单,但我对所有事情都很陌生,所以我很感激任何帮助!
答案 0 :(得分:0)
如果您使用的是Windows:
步骤1:在记事本或类似的文本编辑器中,粘贴您提供的代码,并将其保存为folder_split.py
步骤2:打开Windows File Explorer到要分割为多个文件夹的文件的文件夹位置。
步骤3:将folder_split.py文件复制并粘贴到该文件夹中。
步骤4:在Windows File Explorer文件路径窗口中,删除窗口中的路径,然后键入“ cmd”,然后按Enter。这将打开一个终端,其中包含您要拆分的文件夹的文件路径。
步骤5:在终端中,输入“ python folder_split.py ./”,然后按ENTER
仅供参考:您可能还需要通过将“ {0:03d}”替换为“ {0:03.0f}”来更改上面提供的代码,否则您可能会收到错误消息,提示“未知格式代码为d”对于类型为“ float”的对象”