python - 从网络路径移动特定文件(有例外)
问题描述
我正在尝试创建一个脚本,以便从我拥有的列表中移动文件。我想为此创造一些条件,但恐怕这就是我的 Python 知识让我失望的地方。我有一个名字列表(AAA
, BBB
, CCC
)。
对于其中的每一个,有六个不同的文件需要移动六个不同的扩展名(AAA.1
, AAA.2
, AAA.3
, AAA.4
, AAA.5
, AAA.6
)。这些文件可能位于 3 个不同的文件夹中。让我们假设,要么AAA/AAA
或BBB/IOL
要么BBB/ABC
。我希望将所有这些文件移动到REAL/AAA
. 问题是,在文件夹AAA/AAA
中有一些AAAXXX.1
我不想移动的文件。
我完全迷失了,对 Python 很陌生(基本上,这是我的第一周:p)。
import os
import shutil
import fnmatch
source = os.listdir(r"\\enterprise\AAA\AAA")
destination = os.listdir(r"\\enterprise\REAL\AAA")
set = {
"AAA",
"BBB",
"CCC"
}
for file in source:
for x in set:
if file.__contains__(str(x)):
print(file)
- 我不知道如何指定
AAAXXX
,BBBXXX
和 etc 不得移动。 - 我不知道如何插入多个文件夹以搜索有条件的文件(如果不在文件夹中
AAA/AAA
,请尝试BBB/IOL
,如果不在BBB/ABC
)
解决方案
我不知道我怎么能指定不移动AAAXXX、BBBXXX 等。
最简单的方法是这样的:
if 'XXX' in file:
continue # this means skip the rest of the cycle and move to next file
我不知道如何插入多个文件夹以搜索有条件的文件(如果不在文件夹 AAA/AAA 中,请尝试 BBB/IOL,如果不是 BBB/ABC)
最直接的方法是
if file_name in os.listdir('first_folder'):
# move from first
elif file_name in os.listdir('second_folder'):
# move from second
# continue adding elif for every folder
else:
print(f'file {file_name) is not found')
但我可能只是扫描了每个文件夹,然后将所有匹配给定名称的内容移动到目的地。尽管如果您有重复的名称和不同的文件内容,并且您有一些文件夹特定的文件夹优先级,这可能不是您想要的。
推荐阅读
- youtube-api - 从频道获取私人视频列表
- html - 链接处于活动状态时不会变成黄色
- python - 对模型使用多视图集是否正确?
- python - 如何打开项目文件夹中的文件?
- sql - 删除尾随逗号
- javascript - 如何使用reduce函数JavaScript
- angular - 我需要创建一个布尔数组的通用 BehaviorSubject 来处理每个页面上按钮的加载微调器
- c++ - 简单顶点着色器的 OpenGL 输出正常,但导致黑屏
- amazon-web-services - 版本升级问题:我在 Elastic Beanstalk 中升级应用程序版本时遇到问题
- go - 如何从客户端 gmail API 收到的 authcode 获取访问令牌