文档章节

核心编程第九章(下)

YuXingY
 YuXingY
发布于 2016/05/02 13:26
字数 530
阅读 3
收藏 0

9-15

def copyfile():
    f1 = open('yanyuxing.txt')
    f2 = open('yyx.txt', 'a')
    f2.write(f1.read())
    f1.close()
    f2.close()
    print 'done'
copyfile()

9-16

import os


def eightybytes(filename='yan.txt'):
    f = open(filename)
    lines = f.readlines()

    result = []
    for line in lines:
        times = divmod(len(line.strip()), 80)
        start = 0
        stop = 80
        for i in range(times[0] + 1):
            result.append(line.strip()[start:stop] + os.linesep)
            start += 80
            stop += 80
            if times[1] == 0:
                break
    f = open(filename, 'w')
    f.writelines(result)
    f.close()
    print 'done'
eightybytes('yu.txt')


def eightybytes2(filename='yan.txt'):
    f = open(filename)
    lines = f.readlines()

    result = []
    for line in lines:
        if len(line.strip()) <= 80:
            result.append(line)
        else:
            theline = line.strip()
            times = len(theline) / 80
            length = len(theline)
            start = 0
            stop = 80
            for i in range(times + 2):
                while True:
                    if line[stop] in [' ', '.']:
                        result.append(line[start:stop + 1] + os.linesep)
                        break
                    else:
                        stop -= 1
                if stop == length - 1:
                    break
                start = stop + 1
                stop = stop + 80 if stop + 80 < length else length - 1
    f = open(filename, 'w')
    f.writelines(result)
    f.close()
    print 'done'
eightybytes2()

9-17

import os
import os.path

filedic = {}


def creatext(f):
    prompt = '''
(W)rite sth into the file
(Q)uit
Enter your choice: '''
    while True:
        choice = raw_input(prompt)
        if choice.lower() == 'w':
            context = raw_input('write a sentence: ')
            f.write(context + os.linesep)
        else:
            f.seek(0)
            break


def displaycontext():
    choice = whichfile()
    f = filedic[choice]
    for line in f:
        print line,
    f.seek(0)


def editext():
    choice = whichfile()
    f = filedic[choice]
    for i, j in enumerate(f):
        print i, j
    f.seek(0)

    lines = f.readlines()
    f.seek(0)
    chooseindex = input('the index of the line you want to edit: ')
    anewline = raw_input('change it to: ')
    lines[chooseindex] = anewline + os.linesep

    f.writelines(lines)
    f.seek(0)


def savetext():
    choice = whichfile()
    f = filedic[choice]
    lines = f.readlines()

    path = raw_input('the path you want to save the file: ')
    os.chdir(path)
    filename = raw_input("the file's name: ")
    sf = open(os.path.join(path, filename), 'w')

    sf.writelines(lines)
    f.close()
    sf.close()


CMD = {'d': displaycontext, 'e': editext, 's': savetext}


def handletext():
    prompt = '''
welcome to use your own text editor:
(C)reate a text
(D)isplay the context
(E)dit your text
(S)ave the file
(Q)uit
now enter your choice: '''
    n = 0
    while True:

        while True:
            try:
                choice = raw_input(prompt).strip()[0].lower()
            except (EOFError, KeyboardInterrupt):
                choice = 'q'
            print 'your choice: ' + choice

            if choice not in 'cdesq':
                print 'invalid option, try again.'
            else:
                break

        if choice == 'q':
            break
        elif choice == 'c':
            f = os.tmpfile()
            n += 1
            filedic['filename' + str(n)] = f
            print "now this file's name is: " + 'filename' + str(n)
            creatext(f)
        else:
            CMD[choice]()


def whichfile():
    print 'now you have created these file: '
    print filedic.keys()
    choice = raw_input('choose the file you want: ')
    return choice

handletext()

9-18

def searchbyte():
    byte = chr(input('the value of an ASCII byte: '))
    filename = raw_input('the file to search: ')
    f = open(filename)
    num = f.read().count(byte)
    f.close()
    print 'done'
    return num
print searchbyte()

9-19

import random as ran


def binaryfile(chr_number, appear_number, file_length):
    f = open('binaryfile.bin', 'wb')

    printablebyte = range(0x20, 0x7e)
    printablebyte.remove(chr_number)

    writein = [chr(ran.choice(printablebyte)) for i in range(file_length)]

    insertnumlist = range(0, file_length)
    for i in range(appear_number):
        insertnum = ran.choice(insertnumlist)
        insertnumlist.remove(insertnum)
        writein[insertnum] = chr(chr_number)

    f.writelines(writein)
    f.close()
    print 'done'
binaryfile(0x40, 10, 20)


© 著作权归作者所有

YuXingY
粉丝 1
博文 44
码字总数 18413
作品 0
太原
私信 提问
javascript入门经典【推荐】—新手必备、零基础学习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a125138/article/details/7819466 本书目录 第一章: JavaScript语言基础第二章: JavaScript内置对象 第三章...

续写经典
2012/08/01
0
0
13篇文章,教你学会ES6知识点

ES6 深入理解ES6》学习笔记 本文用于汇总链接到各个子章节的内容,github 欢迎大家题issues和PR,如果对你有帮助,也可以给 star 支持 :) 目录 第一章 块级绑定 第二章 字符串和正则表达式 ...

你听___
2018/05/08
0
0
【备忘】2018年最新FFmpeg音视频教程视频

百度网盘 第一章 音视频行业的前景及应用场景第二章 FFmpeg处理流程及常用命令第三章 FFmpeg之C语言及VIM第四章 FFmpeg之C语言基础第五章 FFmpeg多媒体文件处理第六章 FFmpeg编解码案例第七章...

javail
2018/11/08
222
0
JavaScript 入门教程--WisdomPlanet-Javascript-Primer

WisdomPlanet-Javascript-Primer 是智慧星球 Javascript 入门教程。 本教程写给:正准备踏入编程之路或对 Javascript 感兴趣的同学 作者 念念之间 版权声明 本文允许您用于非商业用途,若有商...

念念之间
2015/04/01
1K
0
WisdomPlanet-Javascript-Primer

WisdomPlanet-Javascript-Primer是一本Javascript入门方面的前端书,目前刚开始连载。书中以小说故事模式开展,讲解了JS的语言基础,作者希望通过此书让刚学编程或准备学习JS的同学作为一个学...

念念之间
2015/04/01
1
0

没有更多内容

加载失败,请刷新页面

加载更多

Taro 兼容 h5 踩坑指南

最近一周在做 Taro 适配 h5 端,过程中改改补补,好不酸爽。 本文记录📝遇到的问题,希望为有相同需求的哥们👬节约点时间。 Taro 版本:1.3.9。 解决跨域问题 h5 发请求会报跨域问题,需...

dkvirus
43分钟前
3
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
今天
2
0
hash slot(虚拟桶)

在分布式集群中,如何保证相同请求落到相同的机器上,并且后面的集群机器可以尽可能的均分请求,并且当扩容或down机的情况下能对原有集群影响最小。 round robin算法:是把数据mod后直接映射...

李朝强
今天
3
0
Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
今天
19
0
java数据类型

基本类型: 整型:Byte,short,int,long 浮点型:float,double 字符型:char 布尔型:boolean 引用类型: 类类型: 接口类型: 数组类型: Byte 1字节 八位 -128 -------- 127 short 2字节...

audience_1
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部