Python os库无法识别文件

时间:2017-11-10 22:46:46

标签: python operating-system

当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从未识别出新的路径。任何人都可以发现我的代码有任何问题吗?

非常高级谢谢你:)

1 个答案:

答案 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")

确保您的程序正确创建文件。