检查文件目录是否存在的最优雅方法是什么,如果不存在,使用Python创建目录?这是我尝试过的:
import os
file_path = "/my/directory/filename.txt"
directory = os.path.dirname(file_path)
try:
os.stat(directory)
except:
os.mkdir(directory)
f = file(filename)
Run Code Online (Sandbox Code Playgroud)
不知何故,我错过了os.path.exists(感谢kanja,Blair和Douglas).这就是我现在拥有的:
def ensure_dir(file_path):
directory = os.path.dirname(file_path)
if not os.path.exists(directory):
os.makedirs(directory)
Run Code Online (Sandbox Code Playgroud)
是否有"开放"的标志,这会自动发生?
例如,在一个简单的目录创建操作中,我可以像这样制作一个OSError:
(Ubuntu Linux)
>>> import os
>>> os.mkdir('foo')
>>> os.mkdir('foo')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 17] File exists: 'foo'
Run Code Online (Sandbox Code Playgroud)
现在我可以像这样抓住这个错误:
>>> import os
>>> os.mkdir('foo')
>>> try:
... os.mkdir('foo')
... except OSError, e:
... print e.args
...
(17, 'File exists')
Run Code Online (Sandbox Code Playgroud)
是否有一种跨平台的方式,我可以知道17或"文件存在"将始终意味着相同的事情,以便我可以根据情况采取不同的行动?
(这是在另一个问题中出现的.)
我应该要求用户输入一个目录,如果该目录不存在,我们告诉他们,然后为他们创建一个目录。
这是我到目前为止的代码。无论输入的路径的目录是否实际存在,它都会以相同的方式进行操作。在 Windows 上使用 pathlib 时会发生这种情况。错误报告 Issue35692
import pathlib
from pathlib import Path
def directory():
p = Path(input("Enter file path: "))
if p.exists:
print('Exists')
return p
else:
print('Directory does not exist. Making directory for you.')
p.mkdir()
directory()
Run Code Online (Sandbox Code Playgroud) 首先,如果标题不清楚,请允许我道歉。
为了简化我在工作中执行的任务,我开始编写此脚本来自动从特定路径中删除文件。
我的问题是,在当前状态下,此脚本不会检查路径提供的文件夹内的文件夹内容。
我不知道如何解决这个问题,因为据我所知,它应该检查这些文件?
import os
def depdelete(path):
for f in os.listdir(path):
if f.endswith('.exe'):
os.remove(os.path.join(path, f))
print('Dep Files have been deleted.')
else:
print('No Dep Files Present.')
def DepInput():
print('Hello, Welcome to DepDelete!')
print('What is the path?')
path = input()
depdelete(path)
DepInput()
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 os 模块验证作为用户输入接收的目录是否存在
这就是我接受输入的方式:
directory = input("Hi ! \n please type a directory, thanks !")
Run Code Online (Sandbox Code Playgroud)
这个想法是我想确保用户将输入一个现有的目录而不是别的
python ×5
directory ×3
exception ×2
path ×2
python-3.x ×2
input ×1
pathlib ×1
python-os ×1
validation ×1
windows ×1