使用python将名称中带有公共短语/编号的文件移动到具有相同编号的文件中,然后增加编号并重复

2024-05-18 11:16:29 发布

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

我有一个文件夹,里面装满了Stack_1直到Stack_30的文件。我把这些文件都放在这样一个文件夹里,所以经常想用一个脚本把它们组织成文件夹。在

每个堆栈有4个文件,因此它将是Stack_1.txtStack_1_shifts.txt等等。在

我试着用shutil.move编写脚本,但它不喜欢我不使用某个东西的绝对名称:

import os
import shutil
n = 1
while (n < 30):
    shutil.move('Stack_'n*, 'stack_'n)
    n = n+1

我已经做了文件夹。如有任何关于如何以自动化方式实现这一点的建议,我们将不胜感激。在


Tags: 文件importtxt脚本文件夹名称movestack
2条回答

是的,字符串替换起作用了对不起,我对python不太好,所以使用*作为通配符。在

最后

import os
import shutil

n = 1

while (n < 30):
shutil.move('Stack_%d.txt' % (n), 'stack_%d' % (n))
shutil.move('Stack_%d_shifts.txt' % (n), 'stack_%d' % (n))
shutil.move('Stack_%d.mrc' % (n), 'stack_%d' % (n))
shutil.move('Stack_%d.rawtlt' % (n), 'stack_%d' % (n))

n = n+1

工作

这个问题/题目有点混乱,但我会尽力帮助你的。在

据我所知你有一个文件夹

[“堆栈1”,“堆栈2”,…,“堆栈30”]

每个文件实际上是4个,堆栈1将是:

'堆栈1'、'堆栈1'u shift'、'堆栈1'u X'、'堆栈1\u Y'

你想把它们移到四个文件夹,文件夹:

“常规”、“轮班”、“X”、“Y”。在

我希望是这样的,如果是这样的话,下面是解决问题的方法:

folders_name_array=['stack','shift','x','y']

for file in glob.glob('*.txt'): if file.endswith('shift'): os.move (file, destination) elif file.endswith('X'): os.move (file, destination2) so on..

相关问题 更多 >