执行以下操作的正常方法是什么?我在目录中有一些文件(例如):
01, 02, 03
10, 15
35
41, 44, 49
我想创建并将它们放在这样的目录中:
01-10
11-20
31-40
41-50
我完全不确定是否有范围列表,开始/结束编号列表或字典。谢谢你的帮助。
编辑:我引起一些混乱,我道歉。
我有以下文件:
01.txt
02.txt
03.txt
10.txt
15.txt
35.txt
41.txt
44.txt
49.txt
我在与上述文件相同的目录中有以下目录:
01-10
11-20
31-40
41-50
我想将.txt文件移动到它们所属的目录中。
答案 0 :(得分:3)
您的代码应该:
要实现2,您应该编写一个函数,给定文件名返回相应的目录名称。首先,假设filename的basename是一个数字:
n = int(os.splitext(filename)[0])
然后使用以下表达式
d = (n-1)//10
给出正确的数字分组41 - > 4,50 - >这一个:
dir = '%2.2d-%2.2d' % (10*d+1,10*(d+1))
转换4 - > '41 -40'
答案 1 :(得分:1)
从manu-fatto开始,至少会显示从filename
到destdir
名称的转换。
使用不同的文件shutil.move(src, dst)
移动文件可能会有所帮助,尽管我认为您必须小心。
import os.path
def destdir(filename):
f = int(os.path.splitext(filename)[0])
d = (f - 1) // 10
return "%02d-%02d" % (10*d+1,10*(d+1))
def filenames():
"""OP to write implementation"""
n = 23
for x in range(1, n + 1):
yield "%02d.txt" % x
for filename in filenames():
print filename, destdir(filename)
输出:
01.txt 01-10
02.txt 01-10
03.txt 01-10
04.txt 01-10
05.txt 01-10
06.txt 01-10
07.txt 01-10
08.txt 01-10
09.txt 01-10
10.txt 01-10
11.txt 11-20
12.txt 11-20
13.txt 11-20
14.txt 11-20
15.txt 11-20
16.txt 11-20
17.txt 11-20
18.txt 11-20
19.txt 11-20
20.txt 11-20
21.txt 21-30
22.txt 21-30
23.txt 21-30