`
oaklet
  • 浏览: 108880 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

文本处理学习笔记3

阅读更多
环境情况如下:
    python-2.5.2

python独立运行的程序中经常用到的是参数的解析,
下面使用locals()字典将输入的参数作为变量注入

paramTest.py
# coding:gbk

import os
import sys
import time

"""
python "paramTest.py" -server "127.0.0.1" -port "21" -username "corba" -password "corba" -startTime "2012-12-31 01:30:00" -endTime "2012-12-31 02:00:00" -outputDir "D:\Downloads" 
"""
if __name__ == "__main__":
    key = None
    for i in sys.argv:
        if i.startswith("-"):
            key = i[1:]
        elif key and not locals().has_key(key):
            locals()[key] = i

    print "server    ", server    
    print "port      ", port      
    print "username  ", username  
    print "password  ", password  
    print "startTime ", startTime 
    print "endTime   ", endTime   
    print "outputDir ", outputDir 
    print


运行命令:
python "paramTest.py" -server "127.0.0.1" -port "21" -username "corba" -password "corba" -startTime "2012-12-31 01:30:00" -endTime "2012-12-31 02:00:00" -outputDir "D:\Downloads"
这一命令共注入server port username password startTime endTime outputDir
七个参数,如paramTest.py中所示,几个参数都作为变量注入到程序之中。

下面使用参数注入的技巧写一个对文本文件更改编码的程序:

fileBrowserDecodeEncode.py
# coding:gbk

import os
import sys
import time

"""
python fileBrowserDecodeEncode.py -inputDir D:\Flex\HelloFlex -outputDir D:\Flex\HelloFlex2 -fileExt .html;.xml;.mxml;.as -dec GBK -enc UTF-8
"""
def changeCode(inputDir, outputDir, fileExt=".txt;.log", dec="GBK", enc="UTF-8"):
    all_exts = fileExt.split(";")
    for path, dirs, files in os.walk(inputDir):
        for f in files:
            currname, currext = os.path.splitext(f)
            if currext not in all_exts:
                continue
            iabsfile = path + os.sep + f
            oabspath = path.replace(inputDir, outputDir)
            oabsfile = oabspath + os.sep + f
            print oabsfile
            if not os.path.exists(oabspath):
                os.makedirs(oabspath)

            ifile = file(iabsfile, "r")
            tdata = ifile.read()
            ifile.close()
            tdata = tdata.decode(dec)
            tdata = tdata.encode(enc)
            ofile = file(oabsfile, "w")
            ofile.write(tdata)
            ofile.close()

if __name__=="__main__":
    key = None
    for i in sys.argv:
        if i.startswith("-"):
            key = i[1:]
        elif key and not locals().has_key(key):
            locals()[key] = i

    print
    if not locals().has_key("fileExt"):
        fileExt=".txt;.log"
    if not locals().has_key("dec"):
        dec="GBK"
    if not locals().has_key("enc"):
        enc="UTF-8"
    changeCode(inputDir, outputDir, fileExt, dec, enc)
    print


运行命令:
python fileBrowserDecodeEncode.py -inputDir D:\Flex\HelloFlex -outputDir D:\Flex\HelloFlex2 -fileExt .html;.xml;.mxml;.as -dec GBK -enc UTF-8
即可将 D:\Flex\HelloFlex 中的文件从 GBK 转换成 UTF-8 到 D:\Flex\HelloFlex2 目录,
只转换其中的 html、xml、mxml、as 文件,过滤了其他文件,
若不指定fileExt,默认转换txt和log文件;
若不指定dec,默认使用GBK读入;
若不指定enc,默认使用UTF-8输出。
python 参数 注入 编码 转换

比较有趣的调用:
def ppt(ip, port):
    print ip, port

args1 = ("127.0.0.1", 21)
args2 = {"ip":"127.0.0.1","port":21}

ppt(*args1)
ppt(**args2)

两种方式都能自动把 ip port 参数给注入了,有意思
据说是用来替换apply的。
分享到:
评论

相关推荐

    J2ME学习笔记 入门 学习经验

    j2me学习笔记【3】——简单的在线帮助示例 j2me学习笔记【4】——Item类的学习 j2me学习笔记【5】——抛出异常处理的小例子 j2me学习笔记【6】——获取日期时间 j2me学习笔记【7】——复选框的应用 j2me学习笔记【8...

    C语言学习笔记 C语言学习笔记

    本压缩包包含的“C语言学习笔记”是一份详尽的C语言学习资料,旨在帮助读者深入理解和掌握C语言的基本概念、语法结构以及实际应用技巧。 一、C语言基础 C语言的基础包括变量、数据类型、运算符、流程控制等。变量...

    Linux学习笔记(强悍总结值得一看)_linux_linux学习笔记_

    这份"Linux学习笔记(强悍总结值得一看)"是Linux初学者的宝贵资源,也适合有经验的用户作为参考手册。以下是对笔记内容的详细概述: 1. **Linux常用命令**: Linux命令行是其强大的工具,掌握常用命令是Linux学习...

    h5前端学习笔记

    学习笔记通常包括了基础概念、关键特性、实用技巧以及常见问题的解决方法。 【标签】"h5"、"前端"、"学习笔记"进一步明确了内容的重点。"h5"即HTML5,是前端开发的核心;"前端"意味着这些笔记涉及的是用户可见和...

    java学习笔记markdown

    【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...

    perl个人学习笔记

    Perl是一种强大的脚本编程语言,尤其适合文本处理和系统管理任务。在个人的学习过程中,掌握其基本语法和特性是至关重要的。以下是对标题和描述中提及的一些关键知识点的详细解释: 1. **操作符**: Perl中的`x`操作...

    Python学习笔记.pdf

    ### Python学习笔记知识点详解 #### 一、Python简介与特性 **标题与描述解析:** "Python学习笔记.pdf" 的标题直接指出了文档的主题——Python的学习资料,而描述的重复表明该文档的主要内容即为Python的学习笔记...

    有关hsql处理文本数据库的笔记

    这篇笔记将探讨如何使用HSQL处理文本数据库,结合标签"源码"和"工具",我们将深入理解HSQL的功能和应用。 首先,让我们了解HSQL的基本概念。HSQLDB是一个完全Java编写的数据库,这意味着它可以在任何支持Java的平台...

    JSP_Servlet学习笔记(第2版).pdf

    《JSP & Servlet学习笔记(第2版)》涵盖了文本处理、图片验证、自动登录、验证过滤器、压缩处理、JSTL应用与操作等各种实用范例。 《JSP & Servlet学习笔记(第2版)》以“微博”项目贯穿全书,将JSP & Servlet技术应用...

    JSP&Servlet学习笔记.pdf

    本书还涵盖了文本处理、图片验证、自动登录、验证过滤器、压缩处理、JSTL应用与操作等各种实用范例。  本书在讲解的过程中,以“微博”项目贯穿全书,随着每一章的讲述都在适当的时候将JSP & Servlet技术应用于...

    Python学习笔记--皮大庆.pdf.zip

    4. **字符串操作**:Python对字符串处理提供了丰富的函数,包括字符串连接、查找、替换、格式化输出等,了解正则表达式可以进行更复杂的文本处理。 5. **控制流**:通过if-elif-else语句进行条件判断,for和while...

    超详细的web前端基础学习笔记

    本学习笔记涵盖了 web 前端开发的基础知识,包括 HTML 的基本结构、文档类型声明、常见的文本和列表标签、分区标签以及图片标签的使用方法。对于初学者而言,这些内容是构建网页的基础,而掌握这些基础知识是进一步...

    Python学习笔记(干货) 中文PDF完整版.pdf

    这份"Python学习笔记"涵盖了从环境搭建到基础语法,再到数据类型和控制结构等关键知识点,旨在为初学者提供全面的学习指导。 首先,1.1章节介绍了Python的基础,包括Python的起源和历史。Python是由Guido van ...

    java学习笔记模版

    【Java学习笔记模版】 Java实习工程师在学习过程中,会涉及到许多关键知识点,尤其是在企业级开发的场景下。从给出的四天学习笔记来看,实习生正在逐步掌握Java Web开发的基础和核心技能。以下是对这些知识点的详细...

    机器学习笔记完整版.pdf

    文档的更新历史表明,该学习笔记不断地被更新和完善,以确保其内容的准确性和时效性。作者黄海广对笔记进行了多次修改和补充,以修正错误并增加新的内容,比如OCTAVE操作内容、数学基础和公式推导等。这体现了作者对...

    Python学习笔记-王纯业

    【Python学习笔记-王纯业】是一份专为Python初学者设计的教程,由王纯业编撰。这个教程深入浅出地介绍了Python编程的基础知识,帮助初学者快速上手。下面将详细阐述该教程中可能包含的重要知识点,以及Python入门者...

    java gui学习笔记

    在"java gui学习笔记"中,我们主要关注两个核心概念:组件(Components)和事件处理(Event Handling)。 首先,GUI界面设计通常涉及各种组件,如按钮(Buttons)、菜单项(MenuItems)、文本字段(TextFields)等...

    Oracle学习笔记.pdf

    以下是对Oracle学习笔记中提到的一些关键知识点的详细解释: 1. **SQL执行顺序**: SQL语句的执行顺序是:`FROM` -> `WHERE` -> `SELECT` -> `GROUP BY` -> `HAVING` -> `ORDER BY`。首先从`FROM`子句开始,确定...

Global site tag (gtag.js) - Google Analytics