在Python中将int转换为字符串

53 投票
6 回答
179788 浏览
提问于 2025-04-16 05:33

我想生成一些文本文件,文件名是fileX.txt,其中X是一个整数:

for i in range(key):
    filename = "ME" + i + ".txt" //Error here! Can't concat a string and int
    filenum = filename
    filenum = open(filename , 'w')  

有没有人知道怎么把文件名设置成"ME" + i 这样,我就能得到一系列文件名,比如:"ME0.txt"、"ME1.txt"、"ME2.txt"等等。

6 个回答

4

可以选择以下两种方式:

"ME" + str(i)

或者:

"ME%d" % i

通常来说,第二种方式更受欢迎,特别是当你想把多个小部分组合成一个完整的字符串时。

19

对于Python 2.6之前的版本,可以使用字符串格式化运算符 %

filename = "ME%d.txt" % i

而对于2.6及之后的版本,建议使用str.format()方法:

filename = "ME{0}.txt".format(i)

虽然第一个例子在2.6中仍然可以使用,但第二个方法更受欢迎。

如果你有超过10个文件需要这样命名,建议加上前导零,这样文件在目录列表中会按顺序排列:

filename = "ME%02d.txt" % i
filename = "ME{0:02d}.txt".format(i)

这样会生成像ME00.txtME99.txt这样的文件名。如果需要更多位数,可以把例子中的2换成更大的数字(例如,ME{0:03d}.txt)。

97
x = 1
y = "foo" + str(x)

请查看Python的官方文档:https://docs.python.org/3/library/functions.html#str

撰写回答