我有一个“.txt”文件,其中包含各种文件名,我想在source_folder中搜索实际保存这些文件的每个文件名,并且我想将匹配的文件移动到特定文件夹。 Source_folder包含多个文件夹中的文件。
我的.txt文件如下所示:
ant1.aiq
ant2.aiq
ant3.aiq
ant4.aiq
我希望将文本文件(ant1.aiq
,ant2.aiq
等)的每一行与文件名匹配,这些文件名存在于某个特定位置(R:\Sample
)并将匹配文件提取到某些文件中其他地方(R:\sample\wsa
)。
到目前为止,我已经编写了以下代码,但它不起作用:
import os
import shutil
sourceDir = "R:\test_vectors\pxi_wcdma"
targetDir = "R:\\Sample\\wsa"
existingFiles = set(f for f in os.listdir(sourceDir) if os.path.isfile(os.path.join(sourceDir, f)))
infilepath = "aiq_hits.txt"
with open(infilepath) as infile:
for line in infile:
fname = line.strip()
if fname not in existingFiles: continue
shutil.move(os.path.join(sourceDir, fname),os.path.join(targetDir, fname))
源文件夹的路径是: R:\ test_vectors \ pxi_wcdma pxi_wcdma文件夹包含要复制的.aiq文件
答案 0 :(得分:3)
我已在我的服务器上对此进行了测试,但它确实有效。 确保路径正确并且您具有读写权限。
import os
import shutil
file = "test.txt"
sourceDir = "R:\\test_vectors\\pxi_wcdma\\"
targetDir = "R:\\Sample\\wsa\\"
for line in open("test.txt") :
line = line.rstrip('\n')
if os.path.isfile(sourceDir+line):
shutil.move(sourceDir+line, targetDir+line)
有关Windows操作系统上路径名的一些提示:
这适用于linux和windows:
'C:/mydir'
其他可能性是:
'C:\\mydir'
如果您对某些名称有疑问,也可以尝试原始字符串:
r'C:\mydir'