[英]How to get index and filename while iterating the list of file path string?
假設我有一個列出一些csv文件的假設列表:
example_list = ['./Data/File_1.csv',
'./Data/File_2.csv',
'./Data/File_3.csv']
我想要的印刷品如下:
'This is file number 1 for File_1.csv'
'This is file number 2 for File_2.csv'
'This is file number 3 for File_3.csv'
做一個簡單的for
循環只打印第一個字符串三次。 我以為我會指定python的索引來'識別'我指的是哪個文件,如下所示:
for data in example_list:
if data[0]:
print('This is file number 1 for File_1.csv')
elif data[1]:
print('This is file number 2 for File_2.csv')
else:
print('This is file number 3 for File_3.csv')
然而,這也僅打印出第一個字符串。 如何自定義每個索引的打印內容?
enumerate
工作:
for (idx, st) in enumerate(example_list, 1):
print('This is file number {} for {}'.format(idx, st.split('/')[-1]))
enumerate(example_list, 1)
枚舉將起始索引設置為1
的列表
print('This is file number {} for {}'.format(idx, st.split('/')[-1]))
以所需的格式打印,帶有st.split('/')[-1])
獲取/
split
-ted列表的最后一個成員。
作為/
是POSIX系統中的目錄分隔符,沒有文件名可以包含/
,因此split('/')[-1]
應該與os.path.basename
相同。 但是,最好使用os.path.basename
BTW。
例:
In [46]: example_list = ['./Data/File_1.csv',
'./Data/File_2.csv',
'./Data/File_3.csv']
In [47]: for (idx, st) in enumerate(example_list, 1):
print('This is file number {} for {}'.format(idx, st.split('/')[-1]))
....:
This is file number 1 for File_1.csv
This is file number 2 for File_2.csv
This is file number 3 for File_3.csv
enumerate
列表,打印格式化的字符串。 您可以使用os.path.basename
獲取文件的基本名稱。
>>> from os.path import basename
>>> example_list = ['./Data/File_1.csv',
... './Data/File_2.csv',
... './Data/File_3.csv']
>>>
>>> for i, fname in enumerate(example_list, 1):
... print('This is file number {} for file {}'.format(i, basename(fname)))
...
This is file number 1 for file File_1.csv
This is file number 2 for file File_2.csv
This is file number 3 for file File_3.csv
您需要使用os.path.basename
enumerate
(在迭代時獲取索引) (從文件路徑獲取文件名)來實現此目的。 這是一個列表理解表達式作為示例:
>>> import os
>>> example_list = [
'./Data/File_1.csv',
'./Data/File_2.csv',
'./Data/File_3.csv']
>>> ['This is file number {} for {}'.format(i, os.path.basename(name)) for i, name in enumerate(example_list)]
['This is file number 0 for File_1.csv', 'This is file number 1 for File_2.csv', 'This is file number 2 for File_3.csv']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.