我正在尝试根据元组计数的值编写不同的文件名或执行类似的功能。
例如
a= ('hello','my','friend')
b = len(a) ## which is 3
a[0] ## which is 'hello'
a[1] ## which is 'my' and so on
但是在读完一个len后我会知道它是3.我想要做的是根据从0到2开始的长度编写一个文件。换句话说,读取len的a然后执行以下操作。
file = open('0.txt','w')
file.write("whatever")
file.close()
file = open('1','w')
file.write("whatever")
file.close()
file = open('2','w')
file.write("whatever")
file.close()
因此我可以对10或100个元组的列表使用相同的代码,它将根据从len(a)读取的值自动调整。
答案 0 :(得分:1)
使用range()
或xrange()
函数根据元组长度生成一系列整数值:
for i in xrange(len(a)):
filename = '{}.txt'.format(i)
这会循环3次,生成数字0
,1
和2
,然后可以用来生成文件名等。
xrange()
按需生成数字,range()
生成一个包含数字的列表;前者具有更高的内存效率,后者为您提供了进一步操作的列表。
答案 1 :(得分:0)
xrange()将创建一个从0到你正在寻找的任何数字的迭代器。
您可以使用任何类型的字符串格式来创建唯一的文件名。
for i in xrange(0,len(a)):
file = open("file_%d.txt" % i, 'w')
file.write("whatever")
file.close()
编辑:使用len(a)使示例更清晰,如建议
答案 2 :(得分:0)
正如您提到的列表a
,您可能对以下方法感兴趣:
a = ('hello', 'my', 'friend')
for i, value in enumerate(a):
# here i stands for index
# value for tuple value of this index, a[i]
print i, value
输出
0 hello
1 my
2 friend