Python shutil.move() 函数
Python shutil.move() Function
所以我编写了一个小 GUI 来控制我最近编写的一些代码,我有两个 tkinter 按钮,它们都分配了 shutil.move() 函数。当我单击一个按钮时,它会将所有内容移动到我希望它所在的文件夹中。单击另一个按钮后,它应该将文件移回另一个文件夹,但它不会移动它们,只是给我打印输出,而不是在 else 中打印输出,所以它在 if 语句中定义
这是我的代码
def startbot():
global BOT
print("Start bot pressed")
if BOT == "OFF":
print("Bot is off")
for filename in file_stop:
shutil.move(os.path.join(Stop, filename), Post)
BOT = "ON"
print("BOT:", BOT)
else:
print("Bot is already active.")
def stopbot():
global BOT
print("Stop bot Pressed")
if BOT == "ON":
print("Bot is on")
for file_name in file_post:
shutil.move(os.path.join(Post, file_name), Stop)
BOT = "OFF"
print("BOT:", BOT)
else:
print("Bot is already inactive.")
Post 是我这样创建的路径和停止点
Post = path + "/Post"
Stop = path + "/Stop"
在gui中选择路径变量,然后保存在文件中。
file_post和file_stop是在这里创建的
file_post = os.listdir(path + "/Post")
file_stop = os.listdir(path + "/Stop")
os.listdir
returns 目录中文件的静态列表,而不是实时视图。文件移动后您将看不到列表变化:
>>> file_stop
['myfile1.txt', 'myfile2.txt']
>>> startbot()
...
>>> file_stop
['myfile1.txt', 'myfile2.txt']
因此,您应该通过将 os.listdir
作为 for-loop:
的一部分放在函数中来生成所需的文件列表
def startbot():
...
if BOT == "OFF":
print("Bot is off")
for file_name in os.listdir(Stop):
shutil.move(os.path.join(Stop, file_name), Post)
BOT = "ON" # Move this out of for-loop
print("BOT:", BOT)
...
def stopbot():
...
if BOT == "ON":
print("Bot is on")
for file_name in os.listdir(Post):
shutil.move(os.path.join(Post, file_name), Stop)
BOT = "OFF" # Move this out of for-loop
print("BOT:", BOT)
...
所以我编写了一个小 GUI 来控制我最近编写的一些代码,我有两个 tkinter 按钮,它们都分配了 shutil.move() 函数。当我单击一个按钮时,它会将所有内容移动到我希望它所在的文件夹中。单击另一个按钮后,它应该将文件移回另一个文件夹,但它不会移动它们,只是给我打印输出,而不是在 else 中打印输出,所以它在 if 语句中定义
这是我的代码
def startbot():
global BOT
print("Start bot pressed")
if BOT == "OFF":
print("Bot is off")
for filename in file_stop:
shutil.move(os.path.join(Stop, filename), Post)
BOT = "ON"
print("BOT:", BOT)
else:
print("Bot is already active.")
def stopbot():
global BOT
print("Stop bot Pressed")
if BOT == "ON":
print("Bot is on")
for file_name in file_post:
shutil.move(os.path.join(Post, file_name), Stop)
BOT = "OFF"
print("BOT:", BOT)
else:
print("Bot is already inactive.")
Post 是我这样创建的路径和停止点
Post = path + "/Post"
Stop = path + "/Stop"
在gui中选择路径变量,然后保存在文件中。
file_post和file_stop是在这里创建的
file_post = os.listdir(path + "/Post")
file_stop = os.listdir(path + "/Stop")
os.listdir
returns 目录中文件的静态列表,而不是实时视图。文件移动后您将看不到列表变化:
>>> file_stop
['myfile1.txt', 'myfile2.txt']
>>> startbot()
...
>>> file_stop
['myfile1.txt', 'myfile2.txt']
因此,您应该通过将 os.listdir
作为 for-loop:
def startbot():
...
if BOT == "OFF":
print("Bot is off")
for file_name in os.listdir(Stop):
shutil.move(os.path.join(Stop, file_name), Post)
BOT = "ON" # Move this out of for-loop
print("BOT:", BOT)
...
def stopbot():
...
if BOT == "ON":
print("Bot is on")
for file_name in os.listdir(Post):
shutil.move(os.path.join(Post, file_name), Stop)
BOT = "OFF" # Move this out of for-loop
print("BOT:", BOT)
...