完全是新的编码(2-3周前开始),我迫切需要帮助......
我试图将某些文件(* .tif文件)移动到目录(例如dir1
)到另一个目录(dir2
),如果它们在列表中。在我的情况下,让我们称这个列表为duplicates.csv
。
编辑:这就是duplicates.csv想要提出的想法。由于我不允许嵌入,这里是链接:image of duplicates.csv
所以现在我正在加载我的重复列表:
import os
import pandas as
import shutil
# Load the list from CSV
duplicates = pd.read_csv(r'\\galaxy\WETS_ScanTest\duplicates.csv', usecols=[1])
# Convert to pandas dataframe to list
duplicates = df_duplicates.values.tolist()
# These are the directories:
dir1 = r'\\galaxy\WETS_ScanTest\TEMP2' # All the files are here
dir2 = r'\\galaxy\WETS_ScanTest\TEMP3' # Move to here IF it matches the `duplicates` list (aka: duplicates.csv)
当我尝试移动文件时
# Move the files to a different directory
for root, dirs, files in os.walk(dir1, topdown=True):
for i in files:
if i in duplicates:
shutil.move((os.path.join(root, i)), dir2)
出于某种原因,我不能让这个工作。
编辑:它没有给出错误消息,但重复的文件不会移动到dir2
对这位新秀的任何帮助都非常感谢。
import os
from os import path
import shutil
dir1 = r'\\galaxy\WETS_ScanTest\TEMP2' # All the files are here
dir2 = r'\\galaxy\WETS_ScanTest\TEMP3' # Move to here IF it matches the `duplicates` list (aka: duplicates.cs
files = [i for i in os.listdir(dir1) if i.endswith(("csv", "txt")) and path.isfile(path.join(dir1, i))]
for f in files:
shutil.move(path.join(dir1, f), dir2)
您可以使用此代码段
你可以将
duplicates_tuple = ("csv", "txt")
files = [i for i in os.listdir(dir1) if i.endswith(duplicates_tuple) and path.isfile(path.join(dir1, i))]
改为
duplicates_tuple = tuple(pd.read_csv(r'\galaxy\WETS_ScanTest\duplicates.csv', usecols=[1]).values.tolist())
files = [i for i in os.listdir(src) if i in (duplicates_tuple) and path.isfile(path.join(src, i))]