好久没写过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. 【Leetcode】86. Partition List

    Question: Given a linked list and a value x, partition it such that all nodes less than x come befor ...

  2. laravel多环境配置(local,testing,production)

    根据不同的环境有不同的配置,laravel中,可以把配置写到.env文件中 在系统中,可以使用env(key, "默认值")来获取env中的配置信息 在laravel中运行时,会运 ...

  3. toast components

    toast components https://jossmac.github.io/react-toast-notifications/ https://docs.microsoft.com/en- ...

  4. Ubuntu16.04中MySQL之中文不能插入问题

    转自:http://blog.csdn.net/fr555wlj/article/details/55668476 今天下午在学习MySQL时,向表中插入一条数据含有中文,结果报错如下, ERROR ...

  5. 利用ZooKeeper简单实现分布式锁

    1.分布式锁的由来: 在程序开发过程中不得不考虑的就是并发问题.在java中对于同一个jvm而言,jdk已经提供了lock和同步等.但是在分布式情况下,往往存在多个进程对一些资源产生竞争关系,而这些进 ...

  6. Python 的 “Magic” 方法

    在以前的文章中,我聊过了Python的 __getitem__ 和 __setitem__ 方法.这些方法被称为“魔法”方法.特殊方法或者dunger方法(译者:国内书籍用“魔法”一词较多).那么,什 ...

  7. 【大数据】Spark基础解析

    第1章 Spark概述 1.1 什么是Spark 1.2 Spark内置模块 Spark Core:实现了Spark的基本功能,包含任务调度.内存管理.错误恢复.与存储系统交互等模块.Spark Co ...

  8. 远程连接工具SSH和linux的连接

    实际开发中,Linux服务器都在其他的地方,我们要通过远程的方式去连接Linux并操作它,Linux远程的操作工具有很多,企业中常用的有Puttty.secureCRT.SSH Secure等.我使用 ...

  9. c++11 继承控制:final和override

    c++11 继承控制:final和override #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <str ...

  10. BZOJ 2426: [HAOI2010]工厂选址

    2426: [HAOI2010]工厂选址 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 364  Solved: 248[Submit][Status ...