相关疑难解决方法(0)

在Python中重命名目录中的多个文件

我正在尝试使用Python重命名目录中的一些文件.

假设我有一个调用的文件,CHEESE_CHEESE_TYPE.***并希望删除CHEESE_所以我的结果文件名将是CHEESE_TYPE

我正在尝试使用os.path.split它,但它无法正常工作.我也考虑过使用字符串操作,但也没有成功.

python file-io file-rename

401
推荐指数
8
解决办法
59万
查看次数

如何重命名()没有竞争条件?

如果我要重命名AB,但前提是B不存在的,天真的事情会被检查是否B存在(有access("B", F_OK)或类似的东西),如果不继续进行rename.不幸的是,这会打开一个窗口,在此窗口期间,某些其他进程可能会决定创建B,然后它会被覆盖 - 更糟糕的是,没有任何迹象表明发生了类似的事情.

其他的文件系统访问功能不从这个痛苦- openO_EXCL(所以复制的文件是安全的),而最近的Linux得到了整个家庭*at保护对大多数其他竞争条件的系统调用-但不是这个特别的一个(renameat存在,但防止了完全不同的问题).

它有解决方案吗?

unix linux race-condition

7
推荐指数
3
解决办法
3877
查看次数

如何重命名在 Python 3 中表示为字符串的文件名的一部分

我想用新名称重命名/替换部分字符串。

我有一个表示文件的字符串,包括其路径和文件扩展名,如下所示。

source_file = 'images/filename.jpg'
Run Code Online (Sandbox Code Playgroud)

下面显示了我到目前为止所尝试的内容。但是,它有效,有没有更好的方法来产生相同的结果?我通过更短的语法和更高效来定义“更好”。

    import uuid

    source_file = 'images/filename.jpg'
    split = source_file.rsplit('/', 1)
    path, filename = split[0], split[1]

    ext = filename.rsplit('.', 1)[1]

    # rebuild
    renamed = path + str(uuid.uuid4()) + ext
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

标签 统计

python ×2

file-io ×1

file-rename ×1

linux ×1

python-3.x ×1

race-condition ×1

unix ×1