相关疑难解决方法(0)

如何在Python中安全地创建嵌套目录?

检查文件目录是否存在的最优雅方法是什么,如果不存在,使用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)

是否有"开放"的标志,这会自动发生?

python directory operating-system exception path

3909
推荐指数
28
解决办法
245万
查看次数

是否存在从Python的OSError获取信息的跨平台方式?

例如,在一个简单的目录创建操作中,我可以像这样制作一个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或"文件存在"将始终意味着相同的事情,以便我可以根据情况采取不同的行动?

(这是在另一个问题中出现的.)

python cross-platform exception

41
推荐指数
1
解决办法
1万
查看次数

为什么即使路径不存在,Path(...).exists 也为 true?

我应该要求用户输入一个目录,如果该目录不存在,我们告诉他们,然后为他们创建一个目录。

这是我到目前为止的代码。无论输入的路径的目录是否实际存在,它都会以相同的方式进行操作。在 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)

python windows directory pathlib

5
推荐指数
1
解决办法
5204
查看次数

Python:如何检查文件夹中的文件夹?

首先,如果标题不清楚,请允许我道歉。

为了简化我在工作中执行的任务,我开始编写此脚本来自动从特定路径中删除文件。

我的问题是,在当前状态下,此脚本不会检查路径提供的文件夹内的文件夹内容。

我不知道如何解决这个问题,因为据我所知,它应该检查这些文件?

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)

python directory path python-3.x

5
推荐指数
1
解决办法
2340
查看次数

Python:使用 os 模块检查目录是否存在

我正在尝试使用 os 模块验证作为用户输入接收的目录是否存在

这就是我接受输入的方式:

directory = input("Hi ! \n please type a directory, thanks !")
Run Code Online (Sandbox Code Playgroud)

这个想法是我想确保用户将输入一个现有的目录而不是别的

python validation input python-3.x python-os

4
推荐指数
2
解决办法
9131
查看次数