Python os库不识别文件
我试图在Python在后台运行时将文件保存在程序中。我为“os”做了一个while循环来尝试找到结果文件,并且一直检查直到它存在。在此之前(尝试,除了块),我做了一个简短的备份文件代码(我不确定这是否对我的问题很重要)。Python os库不识别文件
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,所以我可以用我的代码继续,但它总是假,因为OS从来没有识别出新路径。任何人都可以找到我的代码的任何问题?
谢谢你在先进很大:)
应避免创建文件路径与分隔字符串和使用+运营商concatinating他们。
使用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")
请确保您的程序正确地创建了您的文件。
非常感谢!这也使得逻辑更合理。我从来没有想过,谢谢:) –
只有一个问题!为什么在C:之后使用os.sep,但脚本中没有其他位置?它不代表“\\”吗?它不必在每个文件夹之后? –
我的答案基于这个问题的第二个答案:https://*.com/questions/2422798/python-os-path-join-on-windows它用于my_path初始化的地方,因为其他plaps正在加入my_path变量 – domandinho
这个脚本检查是否存在文件,但是如果你想结束这个循环,你需要创建这个文件。 – domandinho
您正在检查Results.csv是否为_directory _... –