请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生

【每日一坑 4】 查找文件

[复制链接]

0

主题

1

好友

61

积分

注册会员

Rank: 2

发表于 2016-2-3 12:04:06 |显示全部楼层
crossin先生 发表于 2016-2-3 10:51
55~59课是关于正则的,你在论坛里搜一下
http://crossin.me/search.php?mod=forum&searchid=2&orderby=la ...

谢谢先生回复,你的链接点开看到啦,O(∩_∩)O哈哈~
回复

使用道具 举报

0

主题

1

好友

61

积分

注册会员

Rank: 2

发表于 2016-2-3 12:04:28 |显示全部楼层
crossin先生 发表于 2016-2-3 10:51
55~59课是关于正则的,你在论坛里搜一下
http://crossin.me/search.php?mod=forum&searchid=2&orderby=la ...

谢谢先生回复,你的链接点开看到啦,
回复

使用道具 举报

0

主题

0

好友

26

积分

新手上路

Rank: 1

发表于 2017-1-21 16:36:04 |显示全部楼层
import os

for path,dirs,files in os.walk("指定文件夹"):
    for file in files:
        if file.endswith(".txt"):
            print(os.path.join(path,file))


回复

使用道具 举报

0

主题

0

好友

30

积分

新手上路

Rank: 1

发表于 2017-3-14 21:43:35 |显示全部楼层
  1. #! /usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import os
  4. rootdir = 'D:\AutoTest' #定义根目录
  5. i = 0

  6. #三个参数:分别返回1.父目录 2.父目录下所有文件夹名字(不含路径) 3.父目录下所有文件名字
  7. for dirpath, dirnames, filenames in os.walk(rootdir):
  8.     #print filenames
  9.     for filename in filenames: #遍历文件名称
  10.         #print filename
  11.         if filename.split('.')[1] == 'pyc': #提取文件扩展名并进行比较
  12.             i = i + 1
  13. print '后缀是pyc的文件一共有:%d个' % i
复制代码
回复

使用道具 举报

0

主题

0

好友

34

积分

新手上路

Rank: 1

发表于 2017-7-31 13:48:43 来自手机 |显示全部楼层
每日一坑4开始,先生给出的答案在哪里?
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2017-7-31 22:30:15 |显示全部楼层
nic8523 发表于 2017-7-31 13:48
每日一坑4开始,先生给出的答案在哪里?

http://res.crossincode.com/wechat/exercise.html
这里有
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

34

积分

新手上路

Rank: 1

发表于 2017-8-1 10:57:42 来自手机 |显示全部楼层
crossin先生 发表于 2017-7-31 22:30
http://res.crossincode.com/wechat/exercise.html
这里有

谢谢先生
回复

使用道具 举报

0

主题

0

好友

16

积分

新手上路

Rank: 1

发表于 2017-10-6 12:01:57 |显示全部楼层
  1. import os
  2. import fnmatch

  3. def iterfindfiles(path,fnexp):
  4.     for root, dirs, files in os.walk(path):
  5.         for filename in fnmatch.filter(files,fnexp):
  6.             yield os.path.join(root, filename)

  7. for filename in iterfindfiles(r"G:/Python","*.txt"):
  8.     print filename
复制代码
回复

使用道具 举报

2

主题

0

好友

60

积分

注册会员

Rank: 2

发表于 2018-2-23 15:49:54 |显示全部楼层
请问老师,我这个如果加else的话,结果就不对,我只想让没有txt的文件夹打印“no txtfile”请问怎么改呢?
import os   
MySelectPath = 'D:\python'   
def Findtxt(MyPath):  
    for i in os.listdir(MyPath):  
        FilePath = os.path.abspath(os.path.join(MyPath, i))                    
#       输出找到的.txt格式的文件  
        if os.path.splitext(i)[1]=='.txt':  
            print '找到txt文件 :', i      
        elif os.path.isdir(FilePath):  
#           print FilePath  
#           print '进入文件夹 :', i  
            Findtxt(FilePath)           
        else:  
           print i, '—— No txtFile'  
         
Findtxt(MySelectPath)
===运行结果===不是txt的文件也打印“no txtfile”了,我只想让没有txt的文件夹打印
launch.json —— No txtFile
lianxi.py —— No txtFile
modular.py —— No txtFile
my_module.py —— No txtFile
my_module.pyc —— No txtFile
找到txt文件 : none.txt
test.py —— No txtFile
test1.py —— No txtFile
找到txt文件 : data.txt
找到txt文件 : dir.txt
找到txt文件 : my_new_notes.txt
my_pickled_list.pkl —— No txtFile
找到txt文件 : new_data.txt
找到txt文件 : new_file.txt

回复

使用道具 举报

6

主题

2

好友

654

积分

实习版主

Rank: 7Rank: 7Rank: 7

发表于 2018-2-23 17:23:10 |显示全部楼层
wwyy4ever 发表于 2018-2-23 15:49
请问老师,我这个如果加else的话,结果就不对,我只想让没有txt的文件夹打印“no txtfile”请问怎么改呢?
...

从if开始,理一下你的代码思路:

1 如果是.txt文件:输出“找到txt文件”
2 如果不是.txt文件,而且是文件夹:输出文件夹路径,输出“进入文件夹”,对文件夹内容查找txt文件
3 其它情况下(既不是.txt文件,也不是文件夹)输出no txtfile

所以,你要考虑怎么识别文件夹内有无txt文件,而不是简单加个else,你试着改下代码吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-3-29 20:28 , Processed in 0.027320 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部