我有一个问题
“创建一个程序来读取目录'Task2'中的文件名,这些文件的名称采用UmSn格式,其中m=1 to 40
和n=1 to 40
根据m
将文件分成不同的目录,例如{{1 }}。“
提示:使用“ os”模块读取目录和文件名。
我试图解决但不能解决
这是我的代码。
U1,U2,U3......U40
我尝试了很多,但无法解决此错误。
import shutil
import os,fnmatch
os.chdir("D:/MCS 2/MCS4/SL/Task2")
for i in range(1,41):
os.mkdir("U"+str(i))
files = os.listdir()
pattern = "*.TXT"
for i in range(1,41):
for f in files:
if f.startswith("U"+str(i)) and fnmatch.fnmatch(f, pattern):
shutil.move(f,("U"+str(i)))
文件以 Traceback (most recent call last):
File "C:\Users\kaleemi\AppData\Local\Programs\Python\Python37-32\lib\shutil.py", line 557, in move
os.rename(src, real_dst)
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'U10S1.TXT' -> 'U10\\U10S1.TXT'
开始移动成功,但移动U1 T0 U9
时产生错误。
因此,该文件也U10S1.TXT
存在于目录中。
请帮助我找到我的代码在哪里做错了。
答案 0 :(得分:0)
也许您可以尝试确保使用client evaluation来提供绝对路径:
from os.path import abspath
...
shutil.move(abspath(f),("U"+str(i)))