【问题标题】:How to run files in a batch, 5 files at a time, from a folder?如何从文件夹中批量运行文件,一次 5 个文件?
【发布时间】:2019-05-23 07:12:40
【问题描述】:

我有一个包含大约 100 个文件的文件夹。我想一次运行 5 个文件。对于前 5 个文件,我想运行一个函数 my_func,然后我想运行接下来的 5 个(6..10)文件等。

my_func 所做的是将文件组合在一起。所以,我想将前 5 个文件合并到一个目录中,然后转到下 5 个文件。

这是我到目前为止所做的,

file_list = os.listdir(read_path)
len(file_list)

for file in range(len(file_list)):
    if file <= 4:
        my_func()
    ## Not sure How to go to Next Five after runing my_func

对完成此代码的任何帮助都会很棒。

【问题讨论】:

    标签: python python-3.x file directory


    【解决方案1】:

    您可以使用内置的range 来获取每5个文件的索引,然后对列表进行相应的切片。

    num_files_per = 5
    
    for file_index in range(0, len(file_list), num_files_per):
        file_batch = file_list[file_index : (file_index+num_files_per)] # Slice a batch of 5 files
        my_func(file_batch) # Run your function on batch of 5 files 
    

    range 中的第三个参数将决定步长,默认为 1。

    【讨论】:

    • 感谢您的快速响应。我的函数已经接受了一个参数。我能为此做什么。当我像之前一样使用for 循环时,它会永远运行
    • 我必须查看您的my_func 才能确定如何将文件传递给它,您可以发布代码吗?我对您希望如何传递这批文件感到困惑。 file_batch 变量一次保存一组 5 个文件对象,您可以以任何您喜欢的方式进行迭代。
    • 我的函数有两个参数,1:文件夹路径,2:文件写入路径。我想我会试着从这里拿走。再次感谢您!
    猜你喜欢
    • 1970-01-01
    • 2014-04-03
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2012-07-28
    • 2013-11-30
    相关资源
    最近更新 更多