相关疑难解决方法(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万
查看次数

如果目录尚不存在,如何mkdir?

我正在编写一个shell脚本,在AIX上的KornShell(ksh)下运行.我想使用该mkdir命令创建一个目录.但目录可能已经存在,在这种情况下我不想做任何事情.因此,我想测试以查看该目录不存在,或者抑制在mkdir尝试创建现有目录时抛出的"File exists"错误.

有关如何最好地做到这一点的任何想法?

shell scripting aix ksh mkdir

1784
推荐指数
16
解决办法
104万
查看次数

使用文件输出自动创建目录

可能重复:
python中的mkdir -p功能

说我想制作一个文件:

filename = "/foo/bar/baz.txt"

with open(filename, "w") as f:
    f.write("FOOBAR")
Run Code Online (Sandbox Code Playgroud)

这给了一个IOError,因为/foo/bar不存在.

什么是自动生成这些目录的最pythonic方式?难道真的要我明确调用os.path.existsos.mkdir在每个单独的一个(即/富,则/富/条)?

python file-io

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

如何创建新文件夹?

我想将程序的输出信息放到一个文件夹中.如果给定文件夹不存在,则程序应该创建一个新文件夹,文件夹名称与程序中给出的一样.这可能吗?如果是,请告诉我如何.

假设我已经给出了文件夹路径,"C:\Program Files\alex"并且alex文件夹不存在则程序应该创建alex文件夹,并且应该将输出信息放在alex文件夹中.

python mkdir

176
推荐指数
3
解决办法
42万
查看次数

如何递归创建目录?

是否有Python方法以递归方式创建目录?我有这条道路:

/home/dail/
Run Code Online (Sandbox Code Playgroud)

我想创造

/home/dail/first/second/third
Run Code Online (Sandbox Code Playgroud)

我可以递归地执行此操作,还是必须在另一个目录之后创建一个目录?

同样的事情:

我可以递归地执行chmodchown而不为每个文件/目录分配权限吗?

python

129
推荐指数
5
解决办法
10万
查看次数

makedirs和os的mkdir有什么不同?

我很困惑使用这两种os方法来创建新目录.

请给我一些Python的例子.

python linux python-2.7

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

是否存在从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万
查看次数

python mkdir用子文件夹制作文件夹?

这有效:

mkdir('folder')
Run Code Online (Sandbox Code Playgroud)

但事实并非如此

mkdir('folder/subfolder')
Run Code Online (Sandbox Code Playgroud)

错误:

WindowsError: [Error 3] The system cannot find the path specified: 'folder/subfolder'
Run Code Online (Sandbox Code Playgroud)

python directory operating-system mkdir

32
推荐指数
3
解决办法
4万
查看次数

尝试使用open(filename,'w')给出IOError:[Errno 2]如果目录不存在则没有这样的文件或目录

我正在尝试使用Python创建和写入文本文件.我搜索过,无法找到此错误的解决方案/原因.

这是不起作用的代码:

afile = 'D:\\temp\\test.txt'
outFile = open(afile, 'w' )
outFile.write('Test.')
outFile.close()

# Error: 2
# Traceback (most recent call last):
#   File "<maya console>", line 1, in <module>
# IOError: [Errno 2] No such file or directory: 'D:\\temp\\test.txt' #
Run Code Online (Sandbox Code Playgroud)

我找到的大多数答案都与路径中的斜线有关,所以......

I tried 'D:/temp/test.txt' and got an error.
I tried r'D:\temp\test.txt' and got an error.
Run Code Online (Sandbox Code Playgroud)

当我尝试在D的根目录创建文件时:/我已成功.

'D:/test.txt' works.
'D:\\test.txt' works.
r'D:\test.txt' works.
Run Code Online (Sandbox Code Playgroud)

在尝试创建文件时,似乎无法创建我想要的目录路径.在Windows上使用Python在特定路径上创建文件的正确方法是什么(7)?我误解open()可以做什么?如果它们不存在,它是否会创建目录,或者在"写入"模式下使用open()创建文件之前是否需要显式创建目录路径?

python file-io create-directory python-2.7

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

python日志:如何确保创建日志文件目录?

我想在我的应用程序中使用python的日志框架,我想允许我的应用程序的最终用户指定日志文件.(通过Python日志框架的配置机制,在我的例子中是YAML文件的一部分,最终用户可以编辑该文件以指定日志记录的行为方式.)

有没有办法通过创建它来获取日志框架以确保目录存在?因为日志文件名的确切路径嵌入在最终用户指定的配置信息中,所以作为应用程序编写者解析此信息以确定应创建哪个目录对我来说非常重要.

如果最终用户指定"foo/bar/baz.log",我想确保创建了foo/bar目录.

注意:这是关于Java日志记录这个SO问题的Python等价物.

python logging

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