删除一系列文件,跳过范围,然后重复

时间:2017-10-17 20:13:40

标签: python windows file

我想为项目获取代码并运行。我熟悉Maya的python,但是在Windows中处理文件时却很挣扎。基本上我想删除列表中的64个文件,跳过接下来的64个文件,然后重复。

到目前为止,我得到的代码是:

     import os

     fileList = os.listdir("C:\Users\Tory\Desktop\Delete_Test")
     count = 1
     for F in fileList:
     if count < 64:
         os.remove(F)
         time.sleep(2)
         count = count + 1
     elif count < 128:
         count = count + 1
     else:
         count = 1

我得到的错误是“WindowsError:[错误2]系统找不到指定的文件:'HandDrawn_Access_IQ_Comp_14000.jpg'”

我不明白它是怎么找不到它告诉我存在的文件根据我告诉它的样子。我缺少某种格式吗?如果重要的话,我正在Windows上工作。

非常感谢!

2 个答案:

答案 0 :(得分:1)

利用join

类似的东西:

directory = "C:\\Users\\Tory\\Desktop\\Delete_Test"
for F in os.listdir(directory):
    file_path = os.path.join(directory, F)

答案 1 :(得分:0)

这是一个简单的解决方案,可以删除目录中n个文件数的64个文件批次

import os
import itertools

folder = "C:\Users\Tory\Desktop\Delete_Test"
files = os.listdir(folder)
print("Total number of files in the folder: {0}".format(len(files)))

skip = 64
sets = len(files) / skip
breaks = [(i*skip, i*skip+skip-1) for i in xrange(sets) if i % 2]

files_to_delete = list(itertools.chain.from_iterable([files[start:stop] for start, stop in breaks]))
print("No of files to be deleted: {0}".format(len(files_to_delete)))

for filename in files_to_delete:
    filepath = os.path.join(folder, filename)
    print("Deleting file: {0}".format(filepath))
    os.remove(filepath)