相关疑难解决方法(0)

检查路径在Python中是否有效,而不在路径的目标上创建文件

我有一个路径(包括目录和文件名).
我需要测试文件名是否有效,例如,如果文件系统允许我创建具有这样名称的文件.
文件名中包含一些unicode字符.

可以安全地假设路径的目录段是有效且可访问的(我试图使问题更加适用,显然我太过分了).

除非必须,否则我非常不想逃避任何事情.

我发布了一些我正在处理的示例字符,但显然它们会被堆栈交换系统自动删除.无论如何,我想保留标准的unicode实体ö,并且只保留文件名中无效的东西.


这是捕获.可能(或可能不)已经是路径目标的文件.我需要保留该文件(如果它存在),如果不存在则不创建文件.

基本上我想检查是否可以写入路径而不实际打开写入路径(以及通常需要的自动文件创建/文件clobbering).

因此:

try:
    open(filename, 'w')
except OSError:
    # handle error here
Run Code Online (Sandbox Code Playgroud)

从这里

是不可接受的,因为它会覆盖我不想触摸的现有文件(如果它在那里),或者如果不存在则创建所述文件.

我知道我能做到:

if not os.access(filePath, os.W_OK):
    try:
        open(filePath, 'w').close()
        os.unlink(filePath)
    except OSError:
        # handle error here
Run Code Online (Sandbox Code Playgroud)

但那会创建文件filePath,然后我必须这样做os.unlink.

最后,似乎花了6或7行来做一些应该简单os.isvalidpath(filePath)或类似的事情.


顺便说一下,我需要在(至少)Windows和MacOS上运行,所以我想避免特定于平台的东西.

``

python filesystems filepath

74
推荐指数
6
解决办法
7万
查看次数

标签 统计

filepath ×1

filesystems ×1

python ×1