Python利用系统命令获取文件(夹)信息以及Python对Excel的简单操作
2011-10-11 23:12
1036 查看
最近在整理暑假做出的实验结果,组数非常多,为了整理方便,就想将结果整理到Excel中去,很简单的程序也折腾了一阵,主要涉及Python利用系统命令获取文件(夹)信息以及Python对Excel的简单操作两部分。下面分别来记录一下:
1. Python利用系统命令获取文件(夹)信息:这里涉及的主要是os模块以及os.path模块(Mark一下,python关于import以及from model import sub_model需要进一步的学习,最近争取写一篇日志)。
os模块包含普遍的操作系统功能,这个模块对编写与平台无关的代码尤为重要。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。os模块一些有用的方法与属性有:
os.sep 可以取代操作系统特定的路径分割符,Linux下是'/',Windows下是'\'
os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。
os.getenv()和os.putenv()函数分别用来读取和设置环境变量。
os.listdir()返回指定目录下的所有文件和目录名。
os.remove()函数用来删除一个文件。
os.system()函数用来运行shell命令,或者是Windows下的cmd命令。
os.curdir:返回当前目录('.')。
os.chdir(dirname):改变工作目录到dirname。
os.path模块中比较有用的方法以及属性有:
os.path.normpath(path):规范path字符串形式,例如path='d:\some_path'时,返回'd:\\some_path'
os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在,所以,最好先判断是否是文件)
os.path.splitext():分离文件名与扩展名
os.path.join(path,name):连接目录与文件名或目录
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径
os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
os.path.isfile(name):判断name是不是一个文件,不存在name也返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.getsize(name):获得文件大小,如果name是目录返回0L
os.path.abspath(name):获得绝对路径
2. Python对Excel的简单操作。这里,我的需求仅仅是将文件中的每一行按分隔符(我这里是'\t')分成若干列,然后存到Excel的对应单元格中。其中涉及建立Excel,建立Excel中的Sheet,在Sheet中添加内容至单元格,保存Excel文件。涉及的模块是pyExcelerator模块。
建立Excel文件:
w = Workbook()
插入一个Sheet:
ws = w.add_sheet(‘Hey, Dude’)
在Sheet中的某个单元格(第i行,第j列,i和j都从0开始)加入内容:
ws.write(i, j, value)
保存Excel文件:
w.save(‘mini.xls’)
完整代码如下:
1. Python利用系统命令获取文件(夹)信息:这里涉及的主要是os模块以及os.path模块(Mark一下,python关于import以及from model import sub_model需要进一步的学习,最近争取写一篇日志)。
os模块包含普遍的操作系统功能,这个模块对编写与平台无关的代码尤为重要。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。os模块一些有用的方法与属性有:
os.sep 可以取代操作系统特定的路径分割符,Linux下是'/',Windows下是'\'
os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。
os.getenv()和os.putenv()函数分别用来读取和设置环境变量。
os.listdir()返回指定目录下的所有文件和目录名。
os.remove()函数用来删除一个文件。
os.system()函数用来运行shell命令,或者是Windows下的cmd命令。
os.curdir:返回当前目录('.')。
os.chdir(dirname):改变工作目录到dirname。
os.path模块中比较有用的方法以及属性有:
os.path.normpath(path):规范path字符串形式,例如path='d:\some_path'时,返回'd:\\some_path'
os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在,所以,最好先判断是否是文件)
os.path.splitext():分离文件名与扩展名
os.path.join(path,name):连接目录与文件名或目录
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径
os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
os.path.isfile(name):判断name是不是一个文件,不存在name也返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.getsize(name):获得文件大小,如果name是目录返回0L
os.path.abspath(name):获得绝对路径
2. Python对Excel的简单操作。这里,我的需求仅仅是将文件中的每一行按分隔符(我这里是'\t')分成若干列,然后存到Excel的对应单元格中。其中涉及建立Excel,建立Excel中的Sheet,在Sheet中添加内容至单元格,保存Excel文件。涉及的模块是pyExcelerator模块。
建立Excel文件:
w = Workbook()
插入一个Sheet:
ws = w.add_sheet(‘Hey, Dude’)
在Sheet中的某个单元格(第i行,第j列,i和j都从0开始)加入内容:
ws.write(i, j, value)
保存Excel文件:
w.save(‘mini.xls’)
完整代码如下:
# -*- coding:utf-8 -*- ##Author: Liang Feng ##Create Time: 2011/10/10 ##Function: write .table files to sheets within a single excel table import os import re from pyExcelerator import * from os import path def write_txtfile_to_excel(data_file, excel_sheet): row_cnt = 0 split_seg = '\t' file_strm = open(data_file) for line in file_strm: col_lists = line.split(split_seg) col_cnt = 0 for item in col_lists: if item[0] == '0': item = float(item) excel_sheet.write(row_cnt, col_cnt, item) col_cnt = col_cnt + 1 row_cnt = row_cnt + 1 path_str = r'E:\TREC2011\FinalResult\Org_Result\Static30' pattern_str = r'.*\.table' #excel name, if you want change the name, modify here excel_str = path_str + r'\Org_Static30.xls' table_file_re = re.compile(pattern_str) #list all dirs and files in the path_str list_dir = os.listdir(path_str) #generate a work book work_book = Workbook() #walk through the .table files for item in list_dir: if table_file_re.match(item): #split the file name and the ex_file name file_name, ex_name = path.splitext(item) sheet = work_book.add_sheet(file_name) full_file_name = path.join(path_str, item) write_txtfile_to_excel(full_file_name, sheet) #save the excel file work_book.save(excel_str)
相关文章推荐
- 利用stat命令获取Linux文件系统和文件的详细状态信息
- 利用批处理程序和excel获取windows文件信息
- 使用 python 获取 Linux 系统信息(通过dmidecode命令)
- python---pexpect用户操作linux系统命令,命令信息保存到日志
- 利用python获取网页信息以及插入Access数据库
- Mac系统下利用ADB命令连接android手机并进行文件操作
- python中怎样获取文件的修改时间及其他系统信息状态-os.stat()
- 利用python fabric模块写的批量操作远程主机脚本(命令执行,上传、下载文件)
- Mac系统下利用ADB命令连接android手机并进行文件操作
- Linux基础操作2 文件操作命令以及系统文件说明:
- Java程序员从笨鸟到菜鸟之(一百零五)java操作office和pdf文件(三)利用jxl实现数据导出excel报表以及与POI的区别
- Java程序员从笨鸟到菜鸟之(一百零五)java操作office和pdf文件(三)利用jxl实现数据导出excel报表以及与POI的区别
- python利用platform模块获取windows系统信息
- Windows下利用批处理文件获取命令行命令帮助信息
- Python 获取磁盘信息的脚本及常用文件操作等
- 初识和利用Servlet,获取和显示页面提交的数据以及对MySQL数据库的简单操作 7.04
- Mac和Windows系统下利用ADB命令连接android手机文件操作安装卸载
- 运用Python语言编写获取Linux基本系统信息(二):文件系统使用情况获取
- 简单案例教你用PROC文件系统获取进程信息
- 利用Python的Psutil模块获取系统的信息