根据用户输入将文件写入新目录

时间:2018-02-06 06:22:50

标签: python windows python-3.x mkdir

关于如何创建目录有很多建议,但我没有遇到将文件保存在新创建的目录中的优雅解决方案。代码将文件保存在主文件夹中,而不是特定于ID。我非常感谢你的帮助。谢谢!

我正在使用Windows 10 Python 3.

1)检查“TrainData / xx-xxx”目录是否存在

2)如果它不存在:

  • 在“TrainData”目录中创建一个子文件夹,并根据唯一输入(id)命名 - 现在可以使用
  • 将文件保存在此新目录(TrainData / xx-xxx)中,并将其命名为xx-xxx .... jpg

3)如果存在:

  • 将文件保存在此新目录(TrainData / xx-xxx)中,并将其命名为xx-xxx .... jpg

    id = input('Client ID:xx-xxx')     
    
    directory = "TrainData/" +str(id)
    if not os.path.exists(directory):
        os.makedirs(directory)
    
    #with open(os.path.join(directory, '.' +str(id))) #I can't get this to work
    
    file_name_path = directory + str(id)+ '.' +str(count)+ '.' +str(timegm(datetime.utcnow().utctimetuple())) + '.jpg' 
    
    if cv2.Laplacian(face, cv2.CV_64F).var() >200:
        cv2.imwrite(file_name_path, face)
    
    else:
        count -= 1
    cv2.imshow('Client', frame)
    

}

2 个答案:

答案 0 :(得分:0)

用于创建目录(如果不存在):

import os

directory = "TrainData/" +str(id)
if not os.path.exists(directory):
       os.makedirs(directory)

然后您可以在该目录中打开并创建一个文件。

with open(os.path.join(directory, '.' +str(count)+ '.' +str(timegm(datetime.utcnow().utctimetuple())) + '.jpg' ), "w") as ip_file:
      ...

答案 1 :(得分:0)

所有缺失的是' + /'。谢谢大家!

id = input('Client ID:xx-xxx') 

    directory = "TrainData/" +str(id) +'/'
    if not os.path.exists(directory):
       os.makedirs(directory)

    file_name_path = directory +"ID." +str(id)+ '.' +str(count)+ '.' +str(timegm(datetime.utcnow().utctimetuple())) + '.jpg'

    if cv2.Laplacian(face, cv2.CV_64F).var() >200:
        cv2.imwrite(file_name_path, face)

    else:
        count -= 1

    cv2.imshow('Client', frame)