1、任务:简单测试局域网中的网络是否连接,ip范围:192.168.2.101到192.168.2.200。

python 实现代码:

import subprocess
cmd="cmd.exe"
begin=101
end=200
while begin<end:
p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)
p.stdin.write("ping 192.168.2."+str(begin)+"\n")
p.stdin.close()
p.wait()
print "excution result:\n"
print "%s\n"%p.stdout.read()
begin=begin+1

import subprocess 是引进subprocess包,其作用主要是执行外部的命令和程序;
child.stdin,child.stdout,child.stderr分别是标准输入流,标准输出流,标准错误流;
在输入流中输入ping ip 回车即是在dos命令符下查看两个计算机之间是否有网络连接的操作,利用stdin.write()实现;
p.stdin.close()关闭输入流,p.wait()等待子进程p进行完;
print出运行结果,即p.stdout.read();%在python中有格式化输出的作用,比如:a = 'test'    print 'it is a %s' %(a)    打印结果 it is a test
begin+1循环。

简单有效的python就实现了该任务。

2、删除某个文件夹(删除没有子文件夹的文件,就相当于树的叶子结点)

 # -*- coding: utf-8 -*-
import os
ipath='C:\\Users\\hzj\\Desktop\\haha'
filepath=unicode(ipath,'utf8')
os.remove(filepath)

代码很简单,但是删除的时候遇到含中文路径的文件夹就出错,后来加了# -*- coding: utf-8 -*-,即把文件编码类型改为UTF-8的类型,输入这个代码就可以让.py源文件里面有中文了,用unicode()转换一下就好用了,不过这种方法不能删除空的文件夹,下面的方法可以把一个文件夹及其包含的所有子文件夹删除:(删除一个文件,包含子文件的,相当于树的根)

 # -*- coding: utf-8 -*-
import shutil
ipath=('c:\\Users\\hzj\\Desktop\\删除file')
filepath=unicode(ipath,'utf8')
shutil.rmtree(filepath)

用shutil.rmtree()方法就能全部删除。而且,用python删除的文件都不会进入回收站。

清空某个文件夹:(最后只剩下一个空文件夹,树的根)

 # -*- coding: utf-8 -*-
import os
ipath="c:\\Users\\hzj\\Desktop\\emptyFile"
filepath=unicode(ipath,'utf8')
for root,dirnames,filenames in os.walk(filepath,topdown=False):
for name in filenames:
os.remove(os.path.join(root,name))
for name in dirnames:
os.rmdir(os.path.join(root,name))

os.walk()函数可以得到三个参数,路径、路径下的文件夹(有子文件的)、路径下的文件,这样循环递归就可以把一个文件清空了,注意os.rmdir()函数只能删除空的文件夹,所以os.walk()函数里面的参数topdown设为False,即由下到上顺序删除文件。先删除子文件,再删除空文件夹。最后只剩下空的主文件夹。

3、修改文件名称:

 # -*- coding: utf-8 -*-
import os,sys
path="c:\\Users\\hzj\\Desktop\\file"
newName=unicode('楠楠.txt','utf8')
ipath=unicode(path,'utf8')
files=os.listdir(ipath)
if 'nannan.txt' in files:
os.rename(os.path.join(ipath,'nannan.txt'),os.path.join(ipath,newName))

  1、如果path指定的文件夹不是这个程序所在的目录,rename函数里面的路径就必须是绝对路径,否则就会报“WindowsError: [Error 2]”错误;
  2、os.listdir()函数获取当前文件夹下面的子文件夹名称列表。

4、修改文件后缀:

 # -*- coding: utf-8 -*-
import os,sys
path="c:\\Users\\hzj\\Desktop\\file"
ipath=unicode(path,'utf8')
files=os.listdir(ipath)
for name in files:
pos=name.find(".")
if pos>=0:
if name[pos+1:]=="html":
os.rename(os.path.join(ipath,name),os.path.join(ipath,name[:pos+1]+"txt"))

  pos=name.find("."),就是找到字符串name中的"."的位置,比如nannan.txt,pos就是6,和数组一样,下表从0开始,这样name[pos+1:]就是name[7:],就是"txt",name[:pos+1]就是"nannan.",name[1:5]就是"anna",其它同理。
  find()函数如果找不到指定的字符串的话就会返回 ‘-1' 。

还有一种方式可以同时实现上面的功能,代码如下:

 # -*- coding: utf-8 -*-
import os,sys
path="c:\\Users\\hzj\\Desktop\\file"
ipath=unicode(path,'utf8')
files=os.listdir(ipath)
for name in files:
li=os.path.splitext(name)
if li[1]==".txt":
os.rename(os.path.join(ipath,name),os.path.join(ipath,li[0]+".html"))

  用到了os.path.splitext()函数,它可以把一个文件名分割成两部分,比如nannan.txt,分割后得到li,li[0]="nannan",li[1]=".txt",所以得到该方法。

未完待续。。。

爱上python(几个小例子)的更多相关文章

  1. Python,while循环小例子--猜拳游戏(三局二胜)

    Python,while循环小例子--猜拳游戏(三局二胜) import random all_choice = ['石头', '剪刀', '布'] prompt = '''(0)石头 (1)剪刀 ( ...

  2. python 字典 get 小例子

    语法 get()方法语法: dict.get(key, default=None) 参数 key -- 字典中要查找的键. default -- 如果指定键的值不存在时,返回该默认值值. 返回值 返回 ...

  3. python,栈的小例子

    ''' 1.首先确认栈的概念,先进后出 2.初始化的时候如果给了一个数组那么就要将数组进栈 ''' class Stack: def __init__(self,start=[]): self.sta ...

  4. [Spark][Python]Spark Join 小例子

    [training@localhost ~]$ hdfs dfs -cat people.json {"name":"Alice","pcode&qu ...

  5. python事件驱动的小例子

    首先我们写一个超级简单的web框架 event_list = [] #这个event_list中会存放所有要执行的类 def run(): for event in event_list: obj = ...

  6. 由Python的一个小例子想到的

    习题: L = [1,2] L.append(L) Print L 问,结果是什么. 结果是,[1,2,[...]] 这是什么意思呢?就是说[...]表示的对[1,2]的无限循环.这一点是在C#等静态 ...

  7. python 基础 字典 小例子

    统计单词次数 作为字典存储 cotent = "who have an apple apple is free free is money you know" result = { ...

  8. python 基础 列表 小例子

    存主机ip到列表 host_list=[] netip='192.168.1' for hostip in range(1,254): ip = netip +str(hostip) host_lis ...

  9. Python,for循环小例子--99乘法表

    一.99乘法表 for i in range(1, 10): for j in range(1, i + 1): print('%sx%s=%s ' % (j, i, j * i), end='') ...

  10. [Spark][Hive][Python][SQL]Spark 读取Hive表的小例子

    [Spark][Hive][Python][SQL]Spark 读取Hive表的小例子$ cat customers.txt 1 Ali us 2 Bsb ca 3 Carls mx $ hive h ...

随机推荐

  1. mongoDB3.4安装

    添加官方yum源——mongodb3.4vim /etc/yum.repos.d/mongodb-org-3.4.repo [mongodb-org-3.4] name=MongoDB Reposit ...

  2. 用C#写一个函数,在一个数组中找出随意几个值相加等于一个值 与迭代器对比

    算法!用C#写一个函数,在一个数组中找出随意几个值相加等于一个值比如,数组{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}  要找出那些数相加等 ...

  3. 【笔记】如何在for语句中迭代多个可迭代对象

    并行=>使用内置函数zip,它能将多个可迭代对象合并,每次迭代返回一个元组. for i,j,k in zip(a,b,c): TODO 穿行=>使用标准库中的itertools.chai ...

  4. TortoiseGit安装简单介绍和使用

    首先,你必须有会装软件的技能和一个看得懂英语的眼睛.然后保证Git也装好了 他提供了中文版的安装包哦 安装过程尽量选择默认就行,先装上面那个啊,语言包最后装. 语言配置 因为以前装过,所以...路径是 ...

  5. Codeforces - 151C 质因子分解

    显然只需要能跑到第二个因子就赢了 需要特判非平凡因子 常数优化:不用求出所有因子,跑完第二个素数就行了 #include<bits/stdc++.h> using namespace st ...

  6. Python入妖5-----正则的基本使用

    什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是 事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符”,这个“规则字符” 来表达对字符的一种过滤逻辑. 正则并不是pyth ...

  7. APP测试总结1

    1.安装.卸载测试 安装.卸载测试主要针对编译后源程序生成的APK安装文件 主要测试点: 1).生成的APK文件在真机上可以安装及下载 2).Android手机端的通用安装工具,如:豌豆荚及91助手等 ...

  8. listview适配器中的控件的点击事件并传值

    @Override public View getView(final int position, View convertView, ViewGroup parent) { // TODO Auto ...

  9. C# 判断字符串为空(长度为0),或者是null(没有new)

    string str = null; if (string.IsNullOrWhiteSpace(str)) { MessageBox.Show("字符串为null"); } ) ...

  10. Keepalived & Lvs集群搭建实验

    实验拓扑图: 实验原理: Keepalived 是基于 LVS ,并与 LVS 高度融合的 LVS和keepalived的关系:lvs起的是负载均衡功能,而keepalived则是高可用(热 备)的支 ...