鱼C论坛

 找回密码
 立即注册
查看: 809|回复: 7

[已解决]求助啊 大哥们

[复制链接]
发表于 2020-6-4 21:38:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天做小甲鱼的题   只改变了a = ('.txt')和  a=['.txt'],  输出结果为啥差这么多   第二个是我想要的  不知道什么原因  求大神们解答(只改变了红字部分)
1、
import os


def sosuo(start):
    os.chdir(start)
    a = ('.txt')

    for each_path in os.listdir(os.curdir):
        if os.path.splitext(each_path)[1] in a:
                b.append(os.getcwd()+os.sep+each_path+'\n')
        if os.path.isdir(each_path):
            sosuo(each_path)
            os.chdir(os.pardir)
    return b

def chuanjian(start,b):
    a = open(start+'\\a.txt','wt')
    a.writelines(b)
    a.close
start = input('请输入待查找的初始目录:')
b = []
c = sosuo(start)
chuanjian(start,c)



输出结果为:
C:\Users\nirui\Desktop\python��ϰ\20200601\2\1
C:\Users\nirui\Desktop\python��ϰ\20200601\2\1\3
C:\Users\nirui\Desktop\python��ϰ\20200601\2\1\3\1
C:\Users\nirui\Desktop\python��ϰ\20200601\2\1\3\1\1.txt
C:\Users\nirui\Desktop\python��ϰ\20200601\2\1\4
C:\Users\nirui\Desktop\python��ϰ\20200601\2\1\4\1.txt
C:\Users\nirui\Desktop\python��ϰ\20200601\2\2
C:\Users\nirui\Desktop\python��ϰ\20200601\2\2\5
C:\Users\nirui\Desktop\python��ϰ\20200601\2\2\6
C:\Users\nirui\Desktop\python��ϰ\20200601\2\2\6\7
C:\Users\nirui\Desktop\python��ϰ\20200601\2\2\6\7\1.txt
C:\Users\nirui\Desktop\python��ϰ\20200601\2\a.txt


2、
import os
def sosuo(start):
    os.chdir(start)
    a = ['.txt']
    for each_path in os.listdir(os.curdir):
        if os.path.splitext(each_path)[1] in a:
                b.append(os.getcwd()+os.sep+each_path+'\n')
        if os.path.isdir(each_path):
            sosuo(each_path)
            os.chdir(os.pardir)
    return b
def chuanjian(start,b):
    a = open(start+'\\a.txt','wt')
    a.writelines(b)
    a.close
start = input('请输入待查找的初始目录:')
b = []
c = sosuo(start)
chuanjian(start,c)




输出结果为:
C:\Users\nirui\Desktop\python��ϰ\20200601\2\1\3\1\1.txt
C:\Users\nirui\Desktop\python��ϰ\20200601\2\1\4\1.txt
C:\Users\nirui\Desktop\python��ϰ\20200601\2\2\6\7\1.txt
C:\Users\nirui\Desktop\python��ϰ\20200601\2\a.txt


最佳答案
2020-6-4 22:07:53
niruipeng 发表于 2020-6-4 22:03
我找了半天   才发现是括号的原因  但是不知道为社么

我知道为什么了 ... 我因为你加上括号等于没加  
如图:

1231.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-4 22:00:11 | 显示全部楼层
发现新大陆了...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 22:03:37 | 显示全部楼层

我找了半天   才发现是括号的原因  但是不知道为社么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 22:07:53 | 显示全部楼层    本楼为最佳答案   
niruipeng 发表于 2020-6-4 22:03
我找了半天   才发现是括号的原因  但是不知道为社么

我知道为什么了 ... 我因为你加上括号等于没加  
如图:

1231.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 22:18:14 | 显示全部楼层
第一个a是字符串,if os.path.splitext(each_path)[1] in a: 则".", "t", "x"都是为真的
第二个是列表,if os.path.splitext(each_path)[1] in a: 则“.txt"为真
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 22:20:13 | 显示全部楼层
如果把第一个写出元组,则是a = ('.txt',),此时结果就与第二个例子一致了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 22:21:24 | 显示全部楼层
本帖最后由 niruipeng 于 2020-6-4 22:23 编辑
Twilight6 发表于 2020-6-4 22:07
我知道为什么了 ... 我因为你加上括号等于没加  
如图:


哦  原来是这个原理
捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 22:26:33 | 显示全部楼层
冬雪雪冬 发表于 2020-6-4 22:20
如果把第一个写出元组,则是a = ('.txt',),此时结果就与第二个例子一致了

懂了   谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 22:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表