Python是否有任何内置功能可将数字添加到文件名(如果已存在)?
我的想法是,它将按某些OS的工作方式工作-如果将文件输出到已经存在该名称文件的目录中,则它将添加数字或对其进行递增。
即:如果“ file.pdf”存在,它将创建“ file2.pdf”,并下次创建“ file3.pdf”。
从某种意义上说,Python在tempfile
模块中内置了此功能。不幸的是,您必须利用私有全局变量tempfile._name_sequence
。正式地,这意味着tempfile
不能保证_name_sequence
甚至在将来的版本中都存在-
这是实现细节。但是,如果您可以使用它,可以说明如何file#.pdf
在指定的目录中创建具有唯一名称的表单文件,例如/tmp
:
import tempfile
import itertools as IT
import os
def uniquify(path, sep = ''):
def name_sequence():
count = IT.count()
yield ''
while True:
yield '{s}{n:d}'.format(s = sep, n = next(count))
orig = tempfile._name_sequence
with tempfile._once_lock:
tempfile._name_sequence = name_sequence()
path = os.path.normpath(path)
dirname, basename = os.path.split(path)
filename, ext = os.path.splitext(basename)
fd, filename = tempfile.mkstemp(dir = dirname, prefix = filename, suffix = ext)
tempfile._name_sequence = orig
return filename
print(uniquify('/tmp/file.pdf'))
问题内容: 我发现了类似的问题,但在Linux / Bash中却找不到 我希望我的脚本使用给定名称(通过用户输入)创建一个文件,但是如果文件名已经存在,请在末尾添加数字。 例: 问题答案: 以下脚本可以为您提供帮助。您不应同时运行脚本的多个副本,以免出现竞争状况。
这是我的代码: 每次执行程序时,我都会创建一个新文档,我只想在不存在的情况下创建它,如果文档存在,只需添加内容即可。
问题内容: 我很沮丧,我不知道该怎么做。 基本上,我只想创建一个表,但是如果它存在,则需要将其删除并重新创建,而不是将其截断,但是如果不存在,则可以创建它。 有人可以帮忙吗? 谢谢乔治 问题答案: 放在tablename您的发言之前。 该语句将删除该表(如果存在),但如果不存在则不会引发错误。
问题内容: 我注意到Swift中的一个常见模式是 因此,当您想“将一项添加到数组之一”时,您不能只 你必须 真的,有没有更快捷的方式来表达类似 尽管这是关于样式的 问题 ,但是由于 Swift 具有复制特性,因此 在Swift中触摸数组时 , 性能似乎是至关重要的问题 。 (请注意,显然您可以为此使用扩展名;这是关于Swiftiness的问题。) 问题答案: Swift 4更新: 从Swift 4
问题内容: 在使用Bluehost进行WordPress安装时,我遇到了一些情况,由于没有上传文件夹,我的WordPress主题遇到了错误。 显然,尽管HostGator可以,Bluehost cPanel WordPress安装程序不会创建此文件夹。 因此,我需要向主题添加代码,以检查文件夹并以其他方式创建该文件夹。 问题答案: 尝试这个: 请注意,这已经是目录的默认模式,并且仍可以被当前的um
问题内容: 我想使用Python在远程服务器上上传文件。我想事先检查远程路径是否确实存在,如果不存在,请创建它。用伪代码: 我正在考虑在Paramiko中执行命令来创建路径(例如)。我想出了这个: 但是这种解决方案对我来说听起来不太好,因为我先关闭了连接,然后再次重新打开。有更好的方法吗? 问题答案: SFTP支持常用的FTP命令(chdir,mkdir等),因此请使用以下命令: 要完全仿真,您可