为了证明这一点,我目前使用的代码来自于cji的这个响应,here.
我尝试递归地从源文件夹中提取所有文件,并将它们从文件名的前五个字符0:5
移动到文件夹中
我的代码如下:
import os
import shutil
srcpath = "SOURCE"
srcfiles = os.listdir(srcpath)
destpath = "DESTINATION"
# extract the three letters from filenames and filter out duplicates
destdirs = list(set([filename[0:5] for filename in srcfiles]))
def create(dirname, destpath):
full_path = os.path.join(destpath, dirname)
os.mkdir(full_path)
return full_path
def move(filename, dirpath):
shutil.move(os.path.join(srcpath, filename)
,dirpath)
# create destination directories and store their names along with full paths
targets = [(folder, create(folder, destpath)) for folder in destdirs]
for dirname, full_path in targets:
for filename in srcfiles:
if dirname == filename[0:5]:
move(filename, full_path)
现在,用下面的代码更改srcfiles = os.listdir(srcpath)
和destdirs = list(set([filename[0:5] for filename in srcfiles]))
,可以得到一个变量中的路径和另一个变量中文件名的前五个字符。在
我该如何修改原始代码来使用这个。。。或者如果有人知道我该怎么做。谢谢。在
我不能很容易地测试它,但我认为这段代码应该可以工作:
相关问题 更多 >
编程相关推荐