当Python在后台运行时,我正在尝试将文件保存在程序中。我为“os”做了一个while循环,试图找到Results文件,并继续检查直到它存在。在那之前(try,除了块),我做了一个简短的备份文件代码(我不确定这对我的问题是否重要)。
import os
import time
path = "D:\\DICOM\\Data\\"
try:
os.rename(path + "Results.csv", path + "Archive\\Results-Backup1.csv")
except FileNotFoundError:
print("")
except FileExistsError:
os.remove(path + "Archive\\Results-Backup1.csv")
os.rename(path + "Results.csv", path + "Archive\\Results-Backup1.csv")
path= path + "Results.csv"
k = str(os.path.isdir(path))
print(k)
while k== "False":
time.sleep(1)
k=str(os.path.isdir(path))
print("k is now TRUE")
我正在等待k为True,所以我可以继续使用我的代码,但它始终为False,因为os从未识别出新的路径。任何人都可以发现我的代码有任何问题吗?
非常高级谢谢你:)
答案 0 :(得分:0)
您应该避免使用分隔符创建文件路径作为字符串,并使用+运算符将它们连接起来。
使用os.path.join并传递目录列表。
import time
import shutil
import os
my_path = os.path.join('C:', os.sep, 'DICOM', 'Data')
from_path = os.path.join(my_path, "Results.csv")
to_path = os.path.join(my_path, "Archive", "Results-Backup1.csv")
try:
shutil.move(from_path, to_path)
except FileNotFoundError:
print("")
my_path = os.path.join(my_path, "Results.csv")
k = os.path.isfile(my_path)
print(k)
while not k:
time.sleep(1)
k = os.path.isfile(my_path)
print("k is now TRUE")
确保您的程序正确创建文件。