`

python/java处理文件遍历

阅读更多

 

    最近这几天,一直在学习python,发现python在脚本处理方面有很多的便捷性,这点要比java要好,但是文档找起来并不是那么方便,刚上手,有点生疏。

 

以下代码是python用来处理文件夹遍历的脚本(OS : ubuntu 11.04 python:2.7)

#coding:utf-8

#iterator folder use python

import os
CODING = 'gb2312'

def iteratorFolder(fall,fileName):
    files = os.listdir(fileName)
    sep = os.path.sep
    for name in files:
        fullname = fileName + sep + name
        if os.path.isdir(fullname):
            iteratorFolder(fall,fullname)
        else    :
            pass
            #fall.append(unicode(fullname,CODING))
            #fall.append(fullname)
        fall.append(unicode(fullname,CODING)) 
        #fall.append(fullname)
    return fall
      
def main():
    fall = []
    fileName = '/home/gavin/projects/email/mail_project_doc'
    
    file = open('log.log','w')  
    fall = iteratorFolder(fall,fileName)
    
    
    for f in fall:
        print f
        print f.encode(CODING)
        file.writelines(f+'\n')
        
    file.close()
    #print file.name    
    #print len(fall)
      
if __name__ == '__main__':
    main()
                      

 

相对比的java代码如下:

package com.sohu.test;

import java.io.*;
import java.util.*;


public class IteratorFolder {
	
	public static List<String> iteratorFolder(List<String> list,String fileName) throws UnsupportedEncodingException{
		
		File file = new File(fileName);
		File[] files = file.listFiles();
		
		String separator = File.separator;
		
		for(int i = 0 ; i < files.length ; i ++){
			File f = files[i];
			String fname = f.getName();
			String fullName = fileName + separator + fname;
			if(f.isDirectory()){
				iteratorFolder(list,fullName);
			}
			list.add(fullName);
		}
		return list;
	}

	
	public static void main(String[] args)throws Exception {
//		check file
		String name = "/home/gavin/projects/email/test";
		
		List<String> list = new ArrayList<String>();
		list = iteratorFolder(list,name);
		
		File file = new File("log_java.log");
		FileOutputStream fos = new FileOutputStream(file);
		PrintWriter out = new PrintWriter(new OutputStreamWriter(fos));
		
		for(String fullName : list){
			out.write(fullName+"\n");
		}
		out.close();
		fos.close();
		System.out.println(file.getAbsolutePath());
		System.out.println(list.size());
	}

}
 

    感觉还是python在文件处理上比java要方便些!在跟同事看了之后,给了一个更简单的处理方式os.walk,这个可以直接遍历文件夹目录做处理,如:

#file = open(fileName,'r')
files = os.walk(fileName)
for f in files:
    for ff in f:
        print ff

 

    可参考os.walk用法:http://www.cnblogs.com/phonefans/archive/2008/10/15/1311707.html

 

    后续再做python的脚本优化!(文件校验判断,文件的参数传入等)

 

 

分享到:
评论
1 楼 amazeur 2011-07-18  
学习一下。

相关推荐

    Java编程文件遍历之指定遍历的层数详细代码

    文件遍历可以使用多种编程语言实现,例如,Java、Python、C++等。Java编程中,可以使用递归函数和循环语句来实现文件遍历。 8. 文件遍历的常见问题 文件遍历中常见的问题包括,例如,文件路径问题、文件权限问题、...

    火山pc 文件遍历的解决方案

    文件遍历的效率与文件系统的组织结构、磁盘I/O性能、CPU处理速度等因素有关。优化遍历策略,如使用深度优先搜索(DFS)或广度优先搜索(BFS),以及利用缓存机制,可以提高效率。 4. **安全性**: 文件遍历过程中...

    文件遍历-文件清单

    文件遍历和文件清单的创建是提高效率、确保数据有序的关键技能。本文将深入探讨如何遍历指定目录下的文件,并生成详细的文件清单,以及涉及到的相关技术标签。 首先,让我们了解“文件目录”。文件目录是一个系统...

    遍历文件

    在大多数编程语言中,都有相应的API或库来支持文件遍历。例如,在Python中,我们可以使用os和os.path模块,而在Java中则是java.io.File类。下面分别以Python和Java为例,演示遍历文件的过程。 1. Python 示例: ```...

    各种语言的二叉树遍历.包括C/C++、Python、Java和JavaScript

    通过具体的代码示例,展示如何在不同编程语言中实现这些遍历技术,包括C/C++、Python、Java和JavaScript。 ### 适用人群 - **计算机科学学生**:正在学习数据结构和算法基础。 - **软件开发者**:需要在项目中实现...

    遍历子文件和文件夹_遍历文件_遍历子文件和文件夹_

    在编程领域,遍历文件和文件夹是一项基本且重要的任务,尤其在处理大量数据或进行文件操作时。本文将深入探讨如何在不同的编程环境中遍历目录下的子文件和子文件夹,以满足日常开发需求。 首先,我们来看“遍历文件...

    简单遍历文件,程序易懂

    同时,递归遍历文件并不局限于Python,其他编程语言如Java、C++、JavaScript也有类似的方法实现这一功能。 总之,掌握递归遍历文件的方法对于任何IT从业者来说都是必备技能,它能够帮助我们有效地处理和管理文件...

    Python实现Java代码行数读取及单元测试

    在Python中,我们可以使用内置的`open()`函数读取文件内容,然后通过字符串处理来分割和遍历每一行。为了计算代码行数,我们需要区分注释和空行。Java注释有单行注释(以`//`开始)和多行注释(以`/*`开始并以`*/`...

    遍历查找硬盘中所有文件夹及文件,包括隐藏文件

    这个过程涉及到操作系统底层的文件系统交互,通常可以通过编程语言实现,比如使用批处理脚本、Python、C#、Java等。以下将详细介绍如何遍历查找硬盘中的所有文件和文件夹,以及如何处理隐藏文件。 首先,我们需要...

    文件内容替换(遍历所有文件)

    在大多数编程语言中,都有内建的字符串替换功能,如Python的`str.replace()`,JavaScript的`string.replace()`,或者Java的`String.replace()`。这些方法接受旧字符串和新字符串作为参数,然后在整个字符串中替换...

    遍历文件夹自动生成目录树

    此外,标签“遍历文件夹”暗示了可能需要处理大量文件和递归操作。在处理大量数据时,需要注意性能优化,避免一次性加载所有文件到内存,而应采用迭代或分块读取的方式。同时,递归遍历深度较大的目录树时,要考虑...

    python实现遍历文件夹修改文件后缀

    本文实例为大家分享了python实现遍历文件夹修改文件后缀的具体代码,供大家参考,具体内容如下 用法 python Modifer.py ./ -fp java xml # coding:utf-8 # Build by LandGrey 2016-05-27 import os import sys #...

    IO遍历目录下所有文件

    我们将深入探讨如何使用编程语言(例如Java或Python)来遍历一个目录及其子目录,读取Access数据库中的图片存储路径,并与服务器上的图片路径进行比较,以及如何删除指定的文件。 首先,让我们了解如何遍历目录。在...

    blwj.rar_文件夹 _遍历文件_遍历文件夹

    压缩包中的"www.pudn.com.txt"可能是用来测试遍历功能的文本文件,而"遍历文件"可能是一个包含更具体遍历操作的代码文件,比如使用不同的遍历策略或处理文件的方法。 总之,遍历文件夹和文件是软件开发中常见的操作...

    如何遍历文件夹查找文件

    在IT领域,遍历文件夹查找文件是一项基本且重要的任务,尤其在进行系统管理、数据处理或软件开发时。这个过程通常涉及到编程语言中的文件I/O(输入/输出)操作和目录遍历功能。以下是一些关于如何遍历文件夹查找文件...

    Python删除Java源文件中全部注释的实现方法

    没找不到合适工具,就写了这个脚本,遍历指定目录,查找*.java文件,删除其中/* */之间,及// 至行末的内容。 (用之前要改改其中的路径): #!D:\Python32 # 过滤JAVA程序中的注释 # 如果字符串中有注释符号的话会...

    python二叉树的遍历.zip

    二叉树遍历是针对这种数据结构进行操作的重要算法,广泛应用于各种软件系统,例如搜索算法、编译器设计、文件系统管理等。在Python中,二叉树的遍历可以通过递归或非递归方式实现,主要分为三种基本类型:前序遍历、...

    遍历指定文件夹下所有文件

    这个任务可以通过各种编程语言来实现,例如C++、C#、Python、Java等。这里我们将聚焦于Windows API中的`FindFirstFile`和`FindNextFile`函数,它们是Windows操作系统提供的用于遍历目录文件的API接口。 `...

Global site tag (gtag.js) - Google Analytics