liqulrw 发表于 2020-6-15 10:18:57

返回空集

import easygui as g
import os


file_open=g.diropenbox()
collect=[]

file_find=os.listdir(path=file_open)
for i in file_find:
    if os.path.splitext(i)=='.py':
      collect.append(i)

   
print(collect)

找到一个目录下的所有py文件,怎么老是返回空集啊,我感觉思维定式了,找不出问题啊

Twilight6 发表于 2020-6-15 10:32:15



这个地方错了,放到切割之后
os.path.splitext(i)
改成:
os.path.splitext(i)

完整代码:
import easygui as g
import os

file_open = g.diropenbox()
collect = []

file_find = os.listdir(path=file_open)
for i in file_find:
    if os.path.splitext(i) == '.py':
      collect.append(i)

print(collect)

1223253411 发表于 2020-6-15 10:51:57

本帖最后由 1223253411 于 2020-6-15 11:11 编辑

楼上大佬正解,不过索引最好设为-1,因为扩展名的索引绝对是最后一个(应该都是最后一个吧),防止出现一些其他的情况:比如有没有两个扩展名的文件??谁知道呢{:10_277:}

BIO-张磊 发表于 2020-6-15 12:02:03

1223253411 发表于 2020-6-15 10:51
楼上大佬正解,不过索引最好设为-1,因为扩展名的索引绝对是最后一个(应该都是最后一个吧),防止出现一些其 ...

不会的噢,默认是以最后一个后缀名为分割
xx.txt.txt返回的是(xx.txt,.txt)

Twilight6 发表于 2020-6-15 12:17:04

1223253411 发表于 2020-6-15 10:51
楼上大佬正解,不过索引最好设为-1,因为扩展名的索引绝对是最后一个(应该都是最后一个吧),防止出现一些其 ...

是的楼上正解不需要切割 1 这个 os 模块的 和 普通的 split 不一样 不能混淆哦~

永恒的蓝色梦想 发表于 2020-6-15 12:50:26

1223253411 发表于 2020-6-15 10:51
楼上大佬正解,不过索引最好设为-1,因为扩展名的索引绝对是最后一个(应该都是最后一个吧),防止出现一些其 ...

os.path.splitext 只会返回二元组
页: [1]
查看完整版本: 返回空集