应用Python解决一些实际问题

Python 是一种简洁优美的脚本语言,它的诸多优点使它在完成某些任务时轻松自如。本文通过几个具体的例子阐明了这一点。

关于Python

Python 是一种简洁优美的编程语言,它具有面向对象的特征,较好的粘合其他语言的能力及跨平台性。然而我认为同样重要的是, 它简单易学,书写代码简洁快速。此外,Python 提供了较多的模快,包含了相当多的功能,所以只要有一个可行的想法,那么用 Python 解决起来会是比较容易的。下面几个例子都源于我遇到的一些实际问题。借助于 Python,这些问题的解决都显得轻而易举。

自动删除某些文件

某些软件在工作时会自动生成一些备份文件。比如我用 Vim 做文本编辑,用 Autocad 绘图时,这些程序都会自动生成一些备份的文件。随着文件数量的增长,每隔一段时间就要清理一下。当然可以选择手工清理,不过考虑到这些文件是分散在不同的目录下,而且数量比较多,所以手工清理还是有些麻烦。于我写了一个简单的 Python 脚本来自动完成这一任务。下面这段代码扫描D盘下的所有目录,并删除目录下的有关备份文件:

  from os.path import walk, join, normpath
  from os import chdir, remove
  def scan(arg, dirname, names)
    for file in names:
1      if file[-1:]=="~" or file[-4:]==".bak":
2        files = normpath(join(dirname,file))
3        chdir(dirname)
4        print "deleting", files
5        remove(file)
6        print "done!"
  if __name__== "__main__":  
      path = chdir('d:\\\\')
7  walk(path, scan, 0)

对以上代码的简单分析和解释:

基本的想法是利用脚本对各个目录进行扫描,对目录下每一个文件进行判断(1句),如果是某个程序生成的备份文件就删除掉(5句)。

备份文件的扩展名都有一定的特征,比如 Vim 备份文件的最后一个字符是波浪号~,而 Autocad 的备份则以 bak 结束。这些特征是判断一个文件是否应该被删除的依据。

7 句 walk(path, scan, 0) 是一个 Python 的内置函数。用来遍历目录 path。显而易见借助于 Python 提供的这个函数,扫描目录的工作比较轻松地完成了,从而使编程的难度降低许多。

最后要说明的一点是,删除某个文件时要知道它的绝对路径而且要在那个文件的所在目录下进行,否则 Python 会提示找不到要处理的文件。2 句得到了文件的绝对路径,3 句 chdir(dirname) 则把当前的目录变成要删除文件的所在目录。

时间: 2024-10-01 08:02:52

应用Python解决一些实际问题的相关文章

举例出结合不同算法技术解决某个实际问题的一个实例

问题描述 举例出结合不同算法技术解决某个实际问题的一个实例 1C 如题,有哪些实际问题同时要用到多个算法技术?请举例并说明,谢谢. 解决方案 阿法狗~~哈哈哈

python解决Fedora解压zip时中文乱码的方法_python

前言 很多时候在windows下压缩文件没问题,但是到了Linux下,出现乱码,很常见.以前在Ubuntu下,用`unzip -O GBK filename.zip` 就可以搞定. 换了Fedora后,暂时没发现乱码的压缩文件.晚上下载一本书的光盘,又碰到了乱码.尝试之前的方法没成功.看了下unzip的help,没-O那个参数了== 刚好找到一个用python解决的办法,分享下. 新建一个`.py`后缀的文件,直接复制粘贴代码: #!/usr/bin/env python # -*- codin

用python解决project euler中的题目

寒假期间学习了python,现在基本上就能上手使用它来解决project euler里面的题目了,用python真的是没得说的,一个字"赞".在C++中需要用一大堆代码实现的算法,在python中,只需要那么短短几行.而且还有惊艳的运行速度.借用<可爱的python>里面的一句话:"人生苦短,我用python". [project euler 055] 求经过一系列规则不能得到回文数的数的个数.题目在此: If we take 47, reverse a

【Python学习】Python解决汉诺塔问题

参考文章:http://www.cnblogs.com/dmego/p/5965835.html 一句话:学程序不是目的,理解就好:写代码也不是必然,省事最好:拿也好,查也好,解决问题就好! 信息时代不用信息就是罪过,直接抄不加理解与应用,就不是自己的,下次遇到还是不会,或许其中的某一个细节就能够用于各个问题的解决,共勉 学习一个东西总会遇到一些经典的问题,学习Python第二天尝试看一下汉诺塔问题,还是百度,看看解题思路,纯粹是重温初中课堂,越活越回去了  汉诺塔的图解递归算法 一.起源: 汉

python解决GPS打卡问题解决办法

目前很多所谓的互联网公司都要搞GPS定位考勤打卡,目前所在的客户单位也要求所有厂家人员进行GPS软件打卡.除了公司的指纹打卡外,还要再打客户的卡.既然是地理定位,在android平台下之前测试过通过使用Fake GPS软件 ,开启开发者模式,允许模拟地理位置是可以实现地点任意的.不过目前用的iphone手机,又不想越狱掉,就想通过抓包,利用python向服务器定点发送伪造包的方式解决.原理和之前写的手机APP自动签到-python实现一样. 这个不同与这之前写的是,这里使用的是POST方法,相对

python解决网站的反爬虫策略总结_python

本文详细介绍了网站的反爬虫策略,在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下. 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采集部分. 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式.前两种比较容易遇到,大多数网站都从这些角度来反爬虫.第三种一些应用ajax的网站会采用,这样增大了爬取的难度(防止静态爬虫使用ajax技术动态加载页面). 1.从用户请求的Headers反爬虫是最常见的反爬虫策略. 伪装header

Python解决codeforces ---- 7

 第一题 20A A. BerOS file system time limit per test 2 seconds memory limit per test 64 megabytes input standard input output standard output The new operating system BerOS has a nice feature. It is possible to use any number of characters '/' as a deli

Python解决codeforces ---- 5

 第一题 13A A. Numbers time limit per test 1 second memory limit per test 64 megabytes input standard input output standard output Little Petya likes numbers a lot. He found that number 123 in base 16 consists of two digits: the first is 7 and the secon

Python解决插入数据库乱码问题

从网站上获取的信息要保存在本地数据库中,但是保存的过程中数据库的信息都变成了乱码,怎么解决呢?客官听我娓娓道来. 首先,保证以下四项的编码都是utf-8: 1. 代码 2. 数据库连接 3. 表的字符集格式 4. 插入的数据格式 每步的操作如下: 1. 保证代码的格式是utf-8,在代码最前面加上这句话 # -*- coding:utf8 -*- #首先用于确定编码,加上这句 2. 保证数据库连接格式是utf-8,这么写 conn=MySQLdb.connect(host='localhost'