`
oaklet
  • 浏览: 107640 次
  • 性别: 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...

    python文本数据处理学习笔记详解

    主要为大家详细介绍了python文本数据处理学习笔记,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

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

    自然语言处理学习笔记nlp-tutorial

    通过自然语言处理技术,可以实现机器翻译、问答系统、情感分析、文本摘要等多种应用。随着深度学习技术的发展,人工神经网络和其他机器学习方法已经在自然语言处理领域取得了重要的进展。未来的发展方向包括更深入的...

    JSP&Servlet;学习笔记

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

    JSP & Servlet学习笔记(第2版)

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

    JSP_Servlet学习笔记(第2版)

    JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学生在学习JSP&Servlet或认证考试时遇到的概念、操作、应用等各种问题及解决方案。 本书针对Servlet3.0的新功能全面改版,无论章节架构...

    JSP & Servlet学习笔记

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

    Pytorch、NLP学习笔记

    记录Pytorch、NLP学习笔记 NLP_indoor / 文本处理 tensorboard的使用 网络模型的保存与读取

    JSP&Servlet学习笔记.pdf

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

    人工智能学习笔记人工智能学习笔记

    人工智能学习笔记 nlp大语言模型基础框架:——10.30 实体命名识别:10.30——11.5 1698669295418 医疗任务-多层级,多粒度测试:11.6——11.9 文本分类:11.6——11.18

    Java/JavaEE 学习笔记

    Java/JavaEE 学习笔记 作者在杰普学习时的学习笔记,是J2ee初学者必备手册,是大家学习J2EE开发的很好的参考笔记。 Java/JavaEE 学习笔记 内容目录: Unix 学习笔记..........7 一、Unix前言............7 二、...

    python自然语言处理-学习笔记(三)之文本相似度计算-附件资源

    python自然语言处理-学习笔记(三)之文本相似度计算-附件资源

    机器学习笔记-Transformer

    Transformer语言模型是一种基于注意力机制的深度学习模型,它是在2017年由Google提出的,被广泛应用于自然语言处理领域。 Transformer模型主要由编码器和解码器组成,其中编码器将输入的文本序列转换为一组向量,...

    Shell脚本学习笔记

    第1章 BashShell命令 6 1.1 Shell提示符 6 1.2 文件与目录Shell命令 7 1.2.1 更改目录命令(cd) 7 1.2.2 列表命令(ls) 7 1.2.3 操作文件命令 10 1.2.4 目录处理命令 14 ...7.3.4 插入和附加文本 129

    全国计算机等级考试二级python的学习笔记

    全国计算机等级考试二级Python学习笔记可以从以下几个方面进行总结: 1. Python基础知识 - Python语法基础:变量、数据类型、运算符、流程控制语句等。 - Python常用内置数据结构:列表、元组、字典、集合的定义、...

Global site tag (gtag.js) - Google Analytics