2017-02-03 42 views
0

我正在努力生成文件名列表。我想這就像file_1.txt file_2.txt等文件的列表如何生成文件名列表?

我做了以下

x= ['file_'] 
y= range(1,57) 
z= x + y 

我預計z會像file_1.txtfile_2.txt等,但別的事情。我怎樣才能做到這一點?

回答

2

您可以簡單地使用列表理解這裏:

z = ['file_%s'%y for y in range(1,57)] 

這產生:

$ python3 
Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
[GCC 5.4.0 20160609] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> z = ['file_%s'%y for y in range(1,57)] 
>>> z 
['file_1', 'file_2', 'file_3', 'file_4', 'file_5', 'file_6', 'file_7', 'file_8', 'file_9', 'file_10', 'file_11', 'file_12', 'file_13', 'file_14', 'file_15', 'file_16', 'file_17', 'file_18', 'file_19', 'file_20', 'file_21', 'file_22', 'file_23', 'file_24', 'file_25', 'file_26', 'file_27', 'file_28', 'file_29', 'file_30', 'file_31', 'file_32', 'file_33', 'file_34', 'file_35', 'file_36', 'file_37', 'file_38', 'file_39', 'file_40', 'file_41', 'file_42', 'file_43', 'file_44', 'file_45', 'file_46', 'file_47', 'file_48', 'file_49', 'file_50', 'file_51', 'file_52', 'file_53', 'file_54', 'file_55', 'file_56'] 
2

您可以沿着使用列表理解str.format用法爲:

#   v `{}` will be replaced with value of `i` with each iteration 
>>> ['file_{}'.format(i) for i in range(1,5)] 
['file_1', 'file_2', 'file_3', 'file_4'] 
1

如果你想hav e文件名列表,使用列表和for循環以及字符串格式。然後,如果您需要使用文件名進行操作,只需訪問該列表即可。

fileList = [] 

for i in range(0,5): 
    fileList.append("File_%s" %i) 

print(fileList) 

#Output: ['File_0.txt', 'File_1.txt', 'File_2.txt', 'File_3.txt', 'File_4.txt']