相关疑难解决方法(0)

如何查找Python中是否存在目录

osPython 的模块中,有没有办法找到目录是否存在,例如:

>>> os.direxists(os.path.join(os.getcwd()), 'new_folder')) # in pseudocode
True/False
Run Code Online (Sandbox Code Playgroud)

python directory

1048
推荐指数
15
解决办法
103万
查看次数

Python中的mkdir -p功能

有没有办法mkdir -p在Python中获得类似于shell的功能.我正在寻找除系统调用之外的解决方案.我确信代码少于20行,我想知道是否有人写过它?

python mkdir

756
推荐指数
9
解决办法
37万
查看次数

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

可能重复:
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万
查看次数

使用python在卷上保留跨平台空间

我需要一种方法来确定在Linux,Windows和OS X上使用python在磁盘卷上剩余的空间.我正在解析各种系统调用的输出(df,dir)来实现这一点 - 有更好的方法吗?

python linux windows macos diskspace

70
推荐指数
8
解决办法
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"FileExists"错误

我在集群系统上有几个并行运行的线程.每个python线程输出到一个目录mydir.每个脚本在输出检查之前是否存在mydir,如果不存在则创建它:

if not os.path.isdir(mydir):
    os.makedirs(mydir)
Run Code Online (Sandbox Code Playgroud)

但这会产生错误:

os.makedirs(self.log_dir)                                             
  File "/usr/lib/python2.6/os.py", line 157, in makedirs
mkdir(name,mode)
OSError: [Errno 17] File exists
Run Code Online (Sandbox Code Playgroud)

我怀疑这可能是由于竞争条件,一个工作在另一个工作之前创建了dir.这可能吗?如果是这样,如何避免这种错误?

我不确定这是一个竞争条件,所以想知道Python中的其他问题是否会导致这个奇怪的错误.

python filesystems queue file-io cluster-computing

37
推荐指数
3
解决办法
5万
查看次数

尝试使用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类.这个Python类将负责在init函数中创建具有给定名称的文件.

我想在两个或更多类中创建上述类的对象,并期望生成两个或文件.

我尝试编写这个类,但我无法创建多个文件.

任何人都可以指导我如何做到这一点?

我创建了以下类:

class Logger:
def __init__(self, log_filename = "test.log"):
    if not os.path.exists("LogFiles"):
        os.makedirs("LogFiles")
    self.Logger = logging.getLogger("main")
    logging.basicConfig(level=logging.DEBUG,
                        format='%(asctime)s : %(message)s',
                        filename= log_filename,
                        filemode='w')           # change filemode to 'w' to overwrite file on each run

    consoleHandler = logging.StreamHandler()
    consoleHandler.setLevel(logging.DEBUG)
    formatter = logging.Formatter('%(asctime)s - %(message)s')
    consoleHandler.setFormatter(formatter)
    logging.getLogger('').addHandler(consoleHandler)      # Add to the root logger
    self.Logger.info("Starting new logging sessions")


def writeToFile(self, line):
    if self.Logger.propagate == True:
        self.Logger.debug(line)

def closeFile(self):

    if self.Logger.propagate == True:
        self.Logger.propagate = False
Run Code Online (Sandbox Code Playgroud)

python logging

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