python脚本的编写和需要的模块
来源:互联网 发布:经典av 知乎 编辑:程序博客网 时间:2024/06/05 23:46
看Python已经有一个月了。
近几天突发奇想,想使用Python来简单地设计一个文件拷贝管理脚本。这个脚本会读取一个指定目录下的所有文件,然后会把这些文件按照输入的参数重新命名为新的文件。目录和新文件的名字都是作为命令给定的。后面会再了解一下wxPython的东西,设计成一个具有良好GUI的软件。
1、先说说命令行的情况。
昨天查到像Linux下的命令行参数形式用Python实现起来很简单。首先使用“import sys”调用sys模块,在你的脚本中可以使用sys.argv这个变量可以直接得到输入的参数。sys.argv这个参数是一个列表,它会记录你在命令行中所有的参数。如一个python脚本command_line.py中的代码如下:
#filename: command_line.py
import sys
print sys.argv #返回一个输入的参数的列表
print len(sys.argv) #返回输入的参数的个数
我们在shell中输入 : python command_line.py -h -i infile.txt
这是打印出来的信息是 :['abc.py', '-h', '-i', 'infile.txt']
其中,sys.argv[0]对应"abc.py",sys.argv[1]对应"-h",依次类推。是不是很简单呢?呵呵!
想进一步的把脚本写的更实用一点呢,我们可以再调用Python中的一个模块getopt。改模块中的方法getopt可以带给我们更美妙的处理。在上面的脚本中添加一些新程序如下:
#filename: command_line.py
import sys
print sys.argv #返回一个输入的参数的列表
print len(sys.argv) #返回输入的参数的个数
#下面的代码是新添加的import getopt
opts, args = getopt.getopt(sys.argv[1:], "hi:o:")
print " The opts is:"
print opts #opts是一个列表,其中的元素为元祖
print " The args is:"
print args #args也是一个列表,其中的元素为字符串
此时我们运行程序:$python command_line.py -h -i input -o output abc
程序的运行结果为(仅仅列出了打印opts和args的结果):
The opts is:
[('-h', ''), ('-i', 'input'), ('-o', 'output')]
The args is:
['abc']
getopt.getopt根据后面括号中的参数返回两个东西,这里我们用两个变量(opts和args)来接受它们。其中getopt.getopt返回的第一个参数为带开关的参数。如 “-i input”会被记录成为一个元祖,即('-i', 'input')。有些命令开关后面不带参数,则记录的元祖中第二个参数就是空字符串,如"-h"被记录成('-h', '')。这些命令开关在getopt方法中必须得给出,括号中的"hi:o:"即我们给定的开关。没有在那个参数位置给出的开关如果被使用会出现错误,可以使用python中的error进行处理。给出第二个参数是记录没有开关的参数。如这里的abc会被记录成一个列表['abc']。
2、在脚本中使用Linux的shell中的命令
首先调用os模块。然后在脚本中使用os.system('shell中的命令')来使得shell中的命令可以直接在python脚本中运行。
import os
os.system('ls -l')
os.system("cp 321.py 1234567.py")
不这样使用也行。因为在python中的os,os.path两个模块中有大量的方法可以实现如同shell中的各种命令。如os.listdir('home/')会列出home目录下所有的目录和文件,就像使用ls home/的效果一样。
另外一个模块shutil中有很多方法可以实现对目录和文件的诸如复制、删除等等操作。
有了这几个模块(sys、getopt、os、os.path、shutil),我的这个脚本的功能便可以很轻松地搞定。更进一步的是对wxPython学习来进行GUI的设计。
- python脚本的编写和需要的模块
- 怎样编写python脚本的C扩展模块
- Python模块的编写和调用
- Python 模块的设计和编写
- python监控脚本的编写
- python import自己编写的模块:import json和simplejson
- 使用Fabric模块编写的批量同步文件的python脚本
- Linux下编写脚本Shell和Python的区别
- python脚本初探---新手如何直接编写一个hello world模块即可执行的.py文件
- 扩展Python__在python脚本中使用其他语言(c/c++/java/c#)编写的模块
- python中对文件、文件夹的操作需要涉及到os模块和shutil模块。
- 编写守护脚本需要注意的的两个问题
- python脚本sqlite3模块的应用
- 编写nginx的http模块需要注意一些细节
- Python的C扩展模块的编写(Anaconda+VS2013,python3.5和c++)
- Linux内核模块和驱动的编写
- linux内核模块和驱动程序的编写
- 模块的编写、编译、载入和卸载
- 读取二进制文件程序
- 2008 send email error
- css中cursor自定义光标的相关属性
- iPad应用的十大用户体验设计准则
- cpanel install
- python脚本的编写和需要的模块
- 截取带汉字的字符串
- WindowsPhone下拉刷新控件 - PullRefreshListBox(一)
- GridView绑定List<T>时要把自动生成行
- 怎样打造高性能的移动用户体验
- 毕设-02.14-ubuntu下编译vlc+vim+ctag
- Linux命令学习小结
- Html进去的时候页面只刷新一次 .
- android三种菜单介绍