好久没写过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. cxGrid使用汇总

    1.自动行高:CellAutoHeight(单元自动高度)设置为True. procedure <AForm>.<AGridColumn>PropertiesValidate( ...

  2. 通过session 怎么防止表单的重复提交!

    1.在提交表单的时候使用隐藏域: String tokenValue=new Date().getTime(); <input type="hidden" name=&quo ...

  3. 微信小程序入门一: 简易form、本地存储

    实例内容 登陆界面 处理登陆表单数据 处理登陆表单数据(异步) 清除本地数据 实例一: 登陆界面 在app.json中添加登陆页面pages/login/login,并设置为入口. 保存后,自动生成相 ...

  4. python查询mysql以字典返回

    # *_*coding:utf-8 *_* import pymysql conn = pymysql.connect(host='192.168.33.10', user='root', passw ...

  5. XMind2TestCase:一个高效测试用例设计的解决方案!

    一.背景 软件测试过程中,最重要.最核心就是测试用例的设计,也是测试童鞋.测试团队日常投入最多时间的工作内容之一. 然而,传统的测试用例设计过程有很多痛点: 1.使用Excel表格进行测试用例设计,虽 ...

  6. [转贴]Linux的SUID SGID 等知识内容

    作者:sparkdev 出处:http://www.cnblogs.com/sparkdev/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...

  7. linux c 判断文件存在,遍历文件,随机修改文件内容

    #include<stdio.h> #include<stdlib.h> #include<time.h> #include<assert.h> #in ...

  8. SpringBoot(六)_AOP统一处理请求

    什么是AOP AOP 是一种编程范式,与编程语言无关: 将通用逻辑从业务逻辑中分离出来(假如你的业务是一条线,我们不在业务线上写一行代码就能完成附加任务!我们会把代码写在其他的地方): 具体实现 (1 ...

  9. FileZilla Server ftp 服务器下通过alias别名设置虚拟目录(多个分区)

    最近检查服务器的时候发现磁盘空间不够用了,正好有两个硬盘正好,一个硬盘还空着,正好通过ftp服务器的别名功能实现添加空间了,这样就不用重新弄机器了 说明:FileZilla Server 的虚拟目录设 ...

  10. [CQOI2016] 手机号码 (数位dp)

    link $solution:$ $10^{10} \leq L \leq R < 10^{11}$这个数据范围很容易想到数位$dp$. 依照题意模拟即可. #include<iostre ...