使用python将多个文件从一个文件夹移动到另一个文件夹

2024-05-15 16:08:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个“.txt”文件,它由不同的文件名组成,我想在实际保存这些文件的源文件夹中搜索每个文件名,并将匹配的文件移到特定的文件夹中。 源文件夹包含多个文件夹中的文件。你知道吗

我的.txt文件如下所示:

ant1.aiq
ant2.aiq
ant3.aiq
ant4.aiq

我想将文本文件的每一行(ant1.aiqant2.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\u vectors\pxi\u wcdma pxi\u wcdma文件夹包含要复制的.aiq文件


Tags: 文件pathintxt文件夹os文件名fname
1条回答
网友
1楼 · 发布于 2024-05-15 16:08:46

我已经在我的服务器上测试过了,它可以正常工作。 确保路径正确,并且您有读写权限。你知道吗

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'

相关问题 更多 >