您的位置:首页 > 编程语言 > Python开发

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’)

完整代码如下:

# -*- 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)


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐