好久没写过Python了,前一阵子忙这忙那的,都几乎把Python给丢掉了,话不多说,马上开始。

9.1.文件过滤。显示一个文件的所有行,并且忽略以井号开头的行。

其实这个题目比较基础,用shell语言的话,一行就能搞定。还是做一下吧。

用shell语言+正则:

dzhwen@deng:~/python文件/Homework/Chapter9$ cat regular_express.txt | grep -v '^#'

用python:

 #!/usr/bin/env python
#-*-coding=utf-8-*- def show(filename):
f = open(filename,'r')
for eachLine in f:
if eachLine[0] != '#':
print eachLine, if __name__ == '__main__':
show('/home/dzhwen/regular_express.txt')

9.2.又是文件访问题目,显示文件F的前N行

shell:

dzhwen@deng:~/python文件/Homework/Chapter9$ head -n N F

python:

 #!/usr/bin/env python
#-*-coding=utf-8-*- def head():
filename = raw_input('请输入文件名称:')
lines = raw_input('请输入行数:')
start = 0
f = open(filename,'r')
while start < int(lines):
print f.next(),
start += 1 if __name__ == '__main__':
head()

9.3.文件信息。显示一个文件的总行数

shell:

dzhwen@deng:~/python文件/Homework/Chapter9$ wc -l regu*
regular_express.txt

python:

>>> f = open('/home/dzhwen/regular_express.txt')
>>> list = f.readlines()
>>> len(list)
22

9.14.将计算器程序修改成接受命令行参数

这道题目还是挺有挑战性的。用到的是sys模块的命令行参数

 #!/usr/bin/env python
#-*-coding=utf-8-*- import sys def calc():
f = open('/home/dzhwen/123.txt','a+')
list = sys.argv
if list[1] == 'print':
for eachLine in f:
print eachLine,
return -1
if list[2] == '+':
ca = list[1:]
for char in ca:
f.write(char+' ')
f.write('\n')
f.write(str(float(list[1]) + float(list[3]))+'\n')
if list[2] == '-':
ca = list[1:]
for char in ca:
f.write(char+' ')
f.write('\n')
f.write(str(float(list[1]) - float(list[3]))+'\n')
if list[2] == '*':
ca = list[1:]
for char in ca:
f.write(char+' ')
f.write('\n')
f.write(str(float(list[1]) * float(list[3]))+'\n')
if list[2] == '/':
ca = list[1:]
for char in ca:
f.write(char+' ')
f.write('\n')
f.write(str(float(list[1]) / float(list[3]))+'\n')
if list[2] == '%':
ca = list[1:]
for char in ca:
f.write(char+' ')
f.write('\n')
f.write(str(float(list[1]) % float(list[3]))+'\n')
if list[2] == '^':
ca = list[1:]
for char in ca:
f.write(char+' ')
f.write('\n')
f.write(str(float(list[1]) ** float(list[3]))+'\n') if __name__ == '__main__':
calc()

9.15.复制文件,将第一个文件的内容复制到第二个文件中去。

同时打开两个通道看可不可以。

#!/usr/bin/env python
#-*-coding=utf-8-*- def copy(file1,file2):
f = open(file1,'r')
g = open(file2,'a+')
for eachLine in f:
g.write(eachLine) if __name__ == '__main__':
copy('/home/dzhwen/123.txt','/home/dzhwen/456.txt')

9.18.搜索文本。查找一个字符在文中的出现次数。

shell:

dzhwen@deng:~/python文件/Homework/Chapter9$ cat regular_express.txt | grep '#' |wc -l

python:没有现成函数,唯有用count

 #!/usr/bin/env python
#-*-coding=utf-8-*- def charcount(filename):
num = raw_input('请输入字节值:')
Count = 0
f = open(filename,'r')
for eachLine in f:
Count += eachLine.count(chr(int(num)))
return Count if __name__ == '__main__':
print charcount('/home/dzhwen/regular_express.txt')

Python核心编程——Chapter9的更多相关文章

  1. python核心编程第二版笔记

    python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d   提供调试输出1.2 –O   生成优化的字节码(生成 ...

  2. python核心编程--笔记

    python核心编程--笔记 的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找pyt ...

  3. Python核心编程第二版(中文).pdf 目录整理

    python核心编程目录 Chapter1:欢迎来到python世界!-页码:7 1.1什么是python 1.2起源  :罗萨姆1989底创建python 1.3特点 1.3.1高级 1.3.2面向 ...

  4. python核心编程--笔记(不定时跟新)(转)

    的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找python路径 1.4 –v   ...

  5. python核心编程笔记(转)

    解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找python路径 1.4 –v   冗 ...

  6. python核心编程(第二版)习题

    重新再看一遍python核心编程,把后面的习题都做一下.

  7. Python核心编程这本书的一些错误

    <Python核心编程第二版>这本书比<Python基础教程第二版修订版>详细很多,丰富了很多细节,虽然它是一本经典的入门书,但我发现还是存在一些明显的错误.在面向对象编程这一 ...

  8. Python核心编程-描述符

    python中,什么描述符.描述符就是实现了"__get__"."__set__"或"__delete__" 方法中至少一个的对象.什么是非 ...

  9. Python核心编程-闭包

    百度搜了一下闭包的概念:简而言之,闭包的作用就是在外部函数执行完并返回后,闭包使得收机制不会收回函数所占用的资源,因为内部函数的执行需要依赖外函数中的变量.这是对闭包作用的非常直白的描述,不专业也不严 ...

随机推荐

  1. localStorage存储数组,对象,localStorage,sessionStorage存储数组对象

    localStorage存储数组,对象,localStorage,sessionStorage存储数组对象   前言 最近在用angular做商城购物车的功能模块,因为angular的watch监听, ...

  2. Word中怎样删除分节符而不影响前节页面设置

    在Word中,通过常规方法删除一个不需要的分节符时,会默认将分节符后面的页面设置带入前一节.比如,第一节是纵向排版,第二节是横向排版,当删除第二节的全部内容,包括二者之间的分节符之后,就会使得第一节的 ...

  3. java中为什么要进行对象序列化?

    序列化其实很好理解,假如你现在做一个项目,项目是分工合作的,并且你喝其他小组成员不在同一个城市,那么你要如何把你写的那些类给其他小组成员呢?这个时候就要用到序列化了,简单的说:序列化就是将内存中的类或 ...

  4. C# id 字符串之类的拼接

    背景 : id数组  [1,2,3,4,45,7] 要拼接字符串‘1’,‘2’,‘3’,看了同事自己写了代码 string+=‘,’ 之类的  头大 解决:string有静态函数 ,string.Jo ...

  5. 配置SSH Forward提升安全性

    目标 MacBook ---(SSH)---> BastionServer ---(SSH)---> RemoteServer   说明 BastionServer.RemoteServe ...

  6. 题解 P1208 【[USACO1.3]混合牛奶 Mixing Milk】

    其实根本没有一楼dalao描述的那么麻烦...... 一楼dalao其实吧,采用了一种纯属模拟的方式. 下面是我的大跃进思想 但是一个个地做减法是不是太慢了?(大跃进思想) 于是我们是不是可以直接进行 ...

  7. 数据结构开发(14):KMP 子串查找算法

    0.目录 1.KMP 子串查找算法 2.KMP 算法的应用 3.小结 1.KMP 子串查找算法 问题: 如何在目标字符串S中,查找是否存在子串P? 朴素解法: 朴素解法的一个优化线索: 示例: 伟大的 ...

  8. Huge Mods UVA - 10692(指数循环节)

    题意: 输入正整数a1,a2,a3..an和模m,求a1^a2^...^an mod m 解析: #include <iostream> #include <cstdio> # ...

  9. MT【133】磨刀不误砍柴工

    (2018,4月学考数学填空最后一题) \(f(x)=2x^2-(x-a)|x-a|-2 \ge 0\)对任意\(x\in R\)恒成立,求\(a\)的范围______ 提示:\(f(0)=a|a|- ...

  10. MT【116】三个点动起来

    评:当若干个变量时抓住主变量,立体几何问题平面化.