Python核心编程——Chapter9
好久没写过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的更多相关文章
- python核心编程第二版笔记
python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d 提供调试输出1.2 –O 生成优化的字节码(生成 ...
- python核心编程--笔记
python核心编程--笔记 的解释器options: 1.1 –d 提供调试输出 1.2 –O 生成优化的字节码(生成.pyo文件) 1.3 –S 不导入site模块以在启动时查找pyt ...
- Python核心编程第二版(中文).pdf 目录整理
python核心编程目录 Chapter1:欢迎来到python世界!-页码:7 1.1什么是python 1.2起源 :罗萨姆1989底创建python 1.3特点 1.3.1高级 1.3.2面向 ...
- python核心编程--笔记(不定时跟新)(转)
的解释器options: 1.1 –d 提供调试输出 1.2 –O 生成优化的字节码(生成.pyo文件) 1.3 –S 不导入site模块以在启动时查找python路径 1.4 –v ...
- python核心编程笔记(转)
解释器options: 1.1 –d 提供调试输出 1.2 –O 生成优化的字节码(生成.pyo文件) 1.3 –S 不导入site模块以在启动时查找python路径 1.4 –v 冗 ...
- python核心编程(第二版)习题
重新再看一遍python核心编程,把后面的习题都做一下.
- Python核心编程这本书的一些错误
<Python核心编程第二版>这本书比<Python基础教程第二版修订版>详细很多,丰富了很多细节,虽然它是一本经典的入门书,但我发现还是存在一些明显的错误.在面向对象编程这一 ...
- Python核心编程-描述符
python中,什么描述符.描述符就是实现了"__get__"."__set__"或"__delete__" 方法中至少一个的对象.什么是非 ...
- Python核心编程-闭包
百度搜了一下闭包的概念:简而言之,闭包的作用就是在外部函数执行完并返回后,闭包使得收机制不会收回函数所占用的资源,因为内部函数的执行需要依赖外函数中的变量.这是对闭包作用的非常直白的描述,不专业也不严 ...
随机推荐
- cxGrid使用汇总
1.自动行高:CellAutoHeight(单元自动高度)设置为True. procedure <AForm>.<AGridColumn>PropertiesValidate( ...
- 通过session 怎么防止表单的重复提交!
1.在提交表单的时候使用隐藏域: String tokenValue=new Date().getTime(); <input type="hidden" name=&quo ...
- 微信小程序入门一: 简易form、本地存储
实例内容 登陆界面 处理登陆表单数据 处理登陆表单数据(异步) 清除本地数据 实例一: 登陆界面 在app.json中添加登陆页面pages/login/login,并设置为入口. 保存后,自动生成相 ...
- python查询mysql以字典返回
# *_*coding:utf-8 *_* import pymysql conn = pymysql.connect(host='192.168.33.10', user='root', passw ...
- XMind2TestCase:一个高效测试用例设计的解决方案!
一.背景 软件测试过程中,最重要.最核心就是测试用例的设计,也是测试童鞋.测试团队日常投入最多时间的工作内容之一. 然而,传统的测试用例设计过程有很多痛点: 1.使用Excel表格进行测试用例设计,虽 ...
- [转贴]Linux的SUID SGID 等知识内容
作者:sparkdev 出处:http://www.cnblogs.com/sparkdev/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...
- linux c 判断文件存在,遍历文件,随机修改文件内容
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<assert.h> #in ...
- SpringBoot(六)_AOP统一处理请求
什么是AOP AOP 是一种编程范式,与编程语言无关: 将通用逻辑从业务逻辑中分离出来(假如你的业务是一条线,我们不在业务线上写一行代码就能完成附加任务!我们会把代码写在其他的地方): 具体实现 (1 ...
- FileZilla Server ftp 服务器下通过alias别名设置虚拟目录(多个分区)
最近检查服务器的时候发现磁盘空间不够用了,正好有两个硬盘正好,一个硬盘还空着,正好通过ftp服务器的别名功能实现添加空间了,这样就不用重新弄机器了 说明:FileZilla Server 的虚拟目录设 ...
- [CQOI2016] 手机号码 (数位dp)
link $solution:$ $10^{10} \leq L \leq R < 10^{11}$这个数据范围很容易想到数位$dp$. 依照题意模拟即可. #include<iostre ...