首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:尝试在.format()中使用“{}.format()”

Python:尝试在.format()中使用“{}.format()”
EN

Stack Overflow用户
提问于 2016-04-04 15:02:05
回答 3查看 15.1K关注 0票数 2

一个很简单的问题,但对于我的生活,我想不出.

我有以下代码:

代码语言:javascript
复制
os.rename(FileName, FileName.replace(".png","")+"_"+time_stamp.replace(":","-").replace(" ","_")+"_"+name_string+".png")

基本上重命名一个图像文件。

我想使用.format()结构,但我不知道如何让.replace()函数使用这个结构。

目前,转换后的代码如下所示:

代码语言:javascript
复制
os.rename(FileName, "{}.replace(".png","")_{}.replace(":","-").replace(" ","_")_{}.png".format(FileName,time_stamp,name_string))

目前,给出的错误是第一个替换处的“无效语法”(在“in”(".png“、"”)处插入符号)。

有人能给我指点正确的方向吗?

有没有更好的方法来做我想做的事?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2016-04-04 15:07:41

您使用的格式的基本形式如下:

代码语言:javascript
复制
"Hello {}".format("there")

计算结果为输出字符串。

"Hello there"

在其简单形式中,字符串中的每个{}将按顺序被format中的字符串替换。更详细的信息,您可以在这里找到:https://pyformat.info/

票数 4
EN

Stack Overflow用户

发布于 2016-04-04 18:01:53

你需要做的是

代码语言:javascript
复制
os.rename(FileName, "{0}_{1}_{2}".format(FileName.replace(".png",""), 
                                        time_stamp.replace(":","-").replace(" ","_"),
                                        name_string+".png"))

或更易读

代码语言:javascript
复制
newName = "{rmvFileFormat}_{time}_{addFileFormat}".format(rmvFileFormat = FileName.replace(".png",""), 
                                                          time = time_stamp.replace(":","-").replace("","_"),
                                                          addFileFormat = name_string+".png")
os.rename(FileName, newName)
票数 2
EN

Stack Overflow用户

发布于 2016-04-04 15:18:37

replace是一个string方法,您不能在正在格式化的字符串中使用它。你要做的是:

代码语言:javascript
复制
s = "A {} string".format('very nice'.replace(' ', '_'))

如果您只想在变量中替换(这似乎是您的目标),或者:

代码语言:javascript
复制
s = "A {} string".format('very nice').replace(' ', '_')

如果你想在全球范围内取代。

关于更好的实现方法,我将使用os.path.splitext来拆分扩展,生成已经以正确格式(当然,如果可以控制的话)的时间戳,而不是使用替换,并在os.rename部件之前进行所有替换,因此它更易读(即将正确的字符串存储在变量中,使用format中的字符串,而不是一行)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36406224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档