遍历文件路径列表时如何获取索引与文件名并自定义输出
如何根据列表索引自定义输出内容?
我来帮你捋清楚问题出在哪,再给你靠谱的解决方案~
首先你之前的判断逻辑完全走偏啦!你写的data[0]是在取每个路径字符串的第一个字符,而不是列表的索引。你看你的每个路径都是./Data/...开头,第一个字符都是.,所以if data[0]永远为真,只会执行第一个print,后面的判断根本不会触发,这就是为啥只输出第一行。
下面给你两种简单有效的解决方法:
方法1:用enumerate直接获取索引(最推荐)
enumerate是Python里专门用来同时遍历列表索引和元素的工具,非常适合这种需要编号的场景。我们可以让它从1开始计数,刚好匹配你的需求:
example_list = ['./Data/File_1.csv', './Data/File_2.csv', './Data/File_3.csv'] # start=1让索引从1开始,不用再加1 for idx, file_path in enumerate(example_list, start=1): # 从路径里提取纯文件名(比如File_1.csv) file_name = file_path.split('/')[-1] print(f'This is file number {idx} for {file_name}')
方法2:手动维护计数器
如果你不想用enumerate,也可以自己定义一个计数器变量,每次循环后加1:
example_list = ['./Data/File_1.csv', './Data/File_2.csv', './Data/File_3.csv'] count = 1 for file_path in example_list: file_name = file_path.split('/')[-1] print(f'This is file number {count} for {file_name}') count += 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
内容的提问来源于stack exchange,提问作者shiv_90




