Python批量打开文件以及获取文件名、目录及路径

一、

  1. #定义函数,用于打开指定类型文件的函数

    def open_allfile(path,filetype):

        data=[]

        import glob

        import os

        read_files=glob.glob(path+'*'+filetype)

        for i in read_files:

            with open(i,'rb') as infile:

                data.append(infile.read())

        return data

    path指定路径;filetype指定文件类型。

    Python批量打开文件以及获取文件名、目录及路径
  2. #定义函数用于,获得文件名

    def get_filename(path,filetype):

        import os

        name=[]

        for root,dirs,files in os.walk(path):

            for i in files:

                if filetype in i:

                    name.append(i.replace(filetype,'')) 

        return name

    Python批量打开文件以及获取文件名、目录及路径
  3. 3

    #测试

    path='C:\\Users\\jyjh\\Desktop\\soures\high_CG_pathogen\\'

    filetype='.txt'

    data=open_allfile(path,filetype)

    name=get_filename(path,filetype)

    name

    Python批量打开文件以及获取文件名、目录及路径




二、

        需求分析

1、读取指定目录下的所有文件
2、读取指定文件,输出文件内容
3、创建一个文件并保存到指定目录

 

  实 现 过 程

  Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用Java写了一个写入、创建、复制、重命名文件要将近60行代码;

  不过简洁的代价是牺牲了一点点运行速度,但随着硬件性能的提升,运行速度的差异会越来越小,直到人类无法察觉~

Python批量打开文件以及获取文件名、目录及路径
#-*- coding: UTF-8 -*- 

'''
1、读取指定目录下的所有文件
2、读取指定文件,输出文件内容
3、创建一个文件并保存到指定目录
'''
import os

# 遍历指定目录,显示目录下的所有文件名
def eachFile(filepath):
    pathDir =  os.listdir(filepath)
    for allDir in pathDir:
        child = os.path.join('%s%s' % (filepath, allDir))
        print child.decode('gbk') # .decode('gbk')是解决中文显示乱码问题

# 读取文件内容并打印
def readFile(filename):
    fopen = open(filename, 'r') # r 代表read
    for eachLine in fopen:
        print "读取到得内容如下:",eachLine
    fopen.close()
    
# 输入多行文字,写入指定文件并保存到指定文件夹
def writeFile(filename):
    fopen = open(filename, 'w')
    print "\r请任意输入多行文字"," ( 输入 .号回车保存)"
    while True:
        aLine = raw_input()
        if aLine != ".":
            fopen.write('%s%s' % (aLine, os.linesep))
        else:
            print "文件已保存!"
            break
    fopen.close()

if __name__ == '__main__':
    filePath = "D:\\FileDemo\\Java\\myJava.txt"
    filePathI = "D:\\FileDemo\\Python\\pt.py"
    filePathC = "C:\\"
    eachFile(filePathC)
    readFile(filePath)
    writeFile(filePathI)
    
Python批量打开文件以及获取文件名、目录及路径

 

  工欲善其事

 

  最近尝试了几个常见的Python IDE,发现Subline tx2对中文的支持不好, NotePad++ 代码自定义颜色不方便。

  用来用去还是Eclipse最顺手,装上PyDev插件之后,编写Python代码很方便;

  Python批量打开文件以及获取文件名、目录及路径

 

 



转载自:http://jingyan.baidu.com/article/358570f6b38ff4ce4724fcf5.html

              http://www.cnblogs.com/jackchiang/p/4605327.html