我有一个功能可以重新组织本地保存数据的目录,但它的行为方式出乎意料。有 3 个文件夹,
current
、previous
和 tma
(两个月前),通过下面的功能,我期望它将删除现有的 tma
,重命名 current
-> previous
, previous
-> tma
,然后重新创建并填充(使用另一个函数)current
文件夹。
import os
import shutil
__PATH = os.getcwd()
def reorganise_directory():
print(__PATH)
destinations = ['current', 'previous', 'tma']
--->shutil.rmtree(os.path.join(__PATH, f'/data/{destinations[-1]}'))
shutil.move(os.path.join(__PATH, f'/data/{destinations[1]}'), os.path.join(__PATH, f'/data/{destinations[-1]}'))
shutil.move(os.path.join(__PATH, f'/data/{destinations[0]}'), os.path.join(__PATH, f'/data/{destinations[1]}'))
return
这是我收到的错误:
似乎由于某种原因,打印出
__PATH
的 C:\dev\python\smog_usage_stats
变量正在变成箭头指示的行中的 C:\
。我不知道为什么?
尝试使用它:
import os
import shutil
__PATH = os.getcwd()
def reorganise_directory():
print(__PATH)
destinations = ['current', 'previous', 'tma']
# Change f"/data/{destinations[x]}" to "data", destinations[x]
shutil.rmtree(os.path.join(__PATH, "data", destinations[-1]))
shutil.move(os.path.join(__PATH, "data", destinations[1]), os.path.join(__PATH, "data", destinations[-1]))
shutil.move(os.path.join(__PATH, "data", destinations[0]), os.path.join(__PATH, "data", destinations[1]))
return
不要在 NT 系统上或向后使用类似 Unix 的斜杠。它可能会导致意外的行为+如果您不在“os.path.join”中使用斜杠(仅名称),您将具有平台独立性,这将有助于启动您的程序,例如,在Linux或MacOS上。