用python完成常见的任务

本文介绍了Python中数据结构的基本操作方法,包括变量值交换、列表与字典的拷贝等,并详细展示了如何进行文件读写操作,如按字符、按行读取以及通过管道读取等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

交换两个变量的值:

(x,y) = (1,2)

(x,y) = (y,x)

 

数据结构操作
内嵌(inline)拷贝
由于python引用和管理模式,语句a = b 并没有对b引用的对象作拷贝,而只是对那个对象产生了新的引用。有时需要对一个对象的新的拷贝,而不是共享一个引用。如果要拷贝,可以用:
newlist = mylist[:]。可以理解为“从开始到结尾的分片”。
newDict = myDict.copy()        #python1.5引入的新功能
oneDict.update(otherDict)    #用另外一个字典的内容替换

拷贝:copy模块
[:]和.copy适用于90%的情况,如果拷贝对象是可变的话,就需要用到deepcopy深度拷贝功能。

文件操作
sys.stdin,sys.stdout,sys.stderr分别代表标准输入,标准输出和标准错误。

算出通过“管道”输入的文件行数
import
data = sys.stdin.readlines()
print "counted",len(data),"lines."
在unix下可以做如下测试:
# cat countlines.py | python countlines.py
Counted 3 lines.

寻找所有以#开始的行
import sys
for line in sys.stdin.readlines():
    if line[0] == '#':
        print line,    #注意这个逗号是需要的,因为line字符串里已经有一个换行符。

取出一个文件的第四列(这里的列是由空白符定义的)
import sys,string
for line in sys.stdin.readlines():
    words = string.split(line)
    if len(words) >= 4:
        print words[3]

取出文件的第四列,列由冒号分开,并用小写输出
import sys,string
for line in sys.stdin.readlines():
    words = string.split(line,':')
    if len(words) >= 4:
        print string.lower(words[3])

打印头10行,最后10行,并隔行输出
import sys,string
lines = sys.stdin.readlines()
sys.stdout.writelines(lines[:10])
sys.stdout.writelines(lines[-10:])
for lineIndex in range(0,len(lines),2):
    sys.stdout.write(lines[linesIndex])

计算单词'python'在文件里出现的次数
import string
text = open(fname).read()
print string.count(text,'python')

把一个文件的列变换成一个列表的行,任务是转置一个文件。
import sys,string
lines = sys.stdin.readlines()
wordlists = []
for line in lines:
    words = string.split(line)
    wordlists.append(words)
for row in range(len(wordlists[0])):
    for col in range(len(wordlists)):
        print wordlists[col][row] + '/t',
        print

逐字地读入
while 1:
    next = sys.stdin.read(1)    #读入一个单字符串
    if not next:            #或者读到EOF时是空串
        break
        处理字符串'next'

逐行地读入
while 1:
    next = sys.stdin.readline()    #读入一个单行字符串
    if not next :
        break
        处理行'next'

处理命令行上指定的一组文件,用sys模块的argv属性

处理一个或多个文件的每一行:fileinput模块

匹配一组文件:glob模块

使用临时文件,tempfile模块的mktemp(),TemporaryFile()函数。

操用程序,调用系统和功能。os.popen以一个shell命令字符串作为参数,并返回一个链接到标准输入或标准输出的文件对象。string.find在一个字符串里从左到右地找一个子串,并返回一个位置索引。

python提供了大量internet的工具使我们可以简单地操作web。

 

 

文章出自http://www.17xie.com/read.php?pid=50809

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值