Python学习笔记(文件)

程序1

编写一个程序,接受用户的输入并保存为新的文件,程序实现如图:

def file_write(filename):
    file1=open('E:/%s'%filename,'w')
    context=print("请输入内容:")
    while 1:
        write=input()
        if write != ':w':
            file1.write('%s\n'%write)
        else:
            break
    file1.close()

filename=input("输入文件名:")
file_write(filename)

程序2

编写一个程序,比较用户输入的两个文件,如果不同。显示出所有不同处的行号与第一处不同字符的位置。

def file_compare(fname1,fname2):
    f1=open(fname1)
    f2=open(fname2)
    count=0 #统计行数
    dif=[] #统计不同处

    for row1 in f1:
        row2=f2.readline()
        count+=1
        if row1!=row2:
            dif.append(count)
    f1.close()
    f2.close()
    return dif

程序3

编写一个程序,当用户输入文件名和行数(N)后,将该文件的前N行打印出来,程序实现如图:

def file_print(filename,num):
    print('文件%s前%s行的内容如下:'%(filename,num))
    file1=open(filename)
    for i in range(int(num)):
        print(file1.readline())

filename=input(r"请输入要打开的文件名(E:/file1.txt):")
num=input("请输入行数:")
file_print(filename,num)

程序4

# 在上一题的基础上扩展,用户可以随意输入要显示的行数。

# 如输入2:5表示打印第2行到第5行的内容;

# 输入:2表示打印从开头到第2行的内容;

# 输入4:表示打印从第4行到结尾的内容;

# 输入:表示打印全部的内容

方法1:

def file_read(filepath,line):
    if line.strip()==":":
        begin=1
        end=-1
    (begin,end)=line.split(":")
    if begin=='':
        begin=1
    if end=='':
        end=-1

    if begin==1 and end==-1:
        t='的全文'
    elif begin==1:
        t='从开始到第%s行'%end
    elif end=='':
        t='从第%s行到结束'%begin
    else:
        t='从第%s行到第%s行'%(begin,end)

    print('文件%s%s的内容如下'%(filepath,t))

    begin=int(begin) - 1
    lines=int(end) - int(begin)
    f=open(filepath)

    for i in range(begin): #用于消耗begin以前的内容
        f.readline()

    if lines<0:
        print(f.read())
    else:
        for j in range(lines):
            print(f.readline())

    f.close()
file=input(r'请输入要打印的文件路径:如(E:/file4.txt)')
linetemp=input(r'请输入要打印的行数,如(2:5或:2或3:)')
file_read(file,linetemp)

往期回顾

Python学习笔记(1)-介绍

Python学习笔记(2)

Python学习笔记(3)-数据类型

Python学习笔记(4)-循环

Python学习笔记(5)-循环

Python学习笔记(6)-循环

Python学习笔记(7)

Python学习笔记(8)-四个小程序

Python学习笔记(9)-函数

Python学习笔记(10)-回文联和统计入参

Python学习笔记(11)-递归

Python学习笔记(12)-字典

Python学习笔记(13)-集合

原文发布于微信公众号 - 软件测试经验与教训(udatest)

原文发表时间:2018-01-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏软件测试经验与教训

Python学习笔记(17)- os\\os.path 操作文件

3356
来自专栏腾讯移动品质中心TMQ的专栏

【腾讯TMQ】基于模型的自动化测试工具:GraphWalker

概述GraphWalker就是一个基于测试模型的用例生成工具。它主要应用于FSM, EFSM模型。可以用来它直接读取FSM, EFSM图形模型、json模型、生...

1.1K0
来自专栏码云1024

matplotlib简介

Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形

4417
来自专栏猿人谷

已知ip地址和其子网掩码如何求网络号子网号主机号

已知ip地址和其子网掩码如何求网络号子网号主机号 已知ip地址为10.130.89.95,其子网掩码为255.255.255.224,求其网络号、子网号和主机号...

2549
来自专栏每日一篇技术文章

OpenGL ES _ 高级03_调试工具

921
来自专栏一个会写诗的程序员的博客

《一切皆是映射》 一致性哈希算法(consistent hashing)

按照常用的hash算法来将对应的key哈希到一个具有232次方个桶的空间中,即0~(232)-1的数字空间中。现在我们可以将这些数字头尾相连,想象成一个闭合的环...

1294
来自专栏机器之心

业界 | 谷歌正式发布TensorFlow 1.5:终于支持CUDA 9和cuDNN 7

3446
来自专栏数据库

《数据库系统概念》15-可扩展动态散列

静态散列要求桶的数目始终固定,那么在确定桶数目和选择散列函数时,如果桶数目过小,随着数据量增加,性能会降低;如果留一定余量,又会带来空间的浪费;或者定期重组散列...

3037
来自专栏GAN&CV

tensorflow ‘/biases/Adam_1’not in ckpt file

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25737169/article/d...

1575
来自专栏NetCore

Visual C#.Net网络程序开发-Tcp篇(2) 祥细内容:

前面我们说,TcpClient类创建在Socket之上,在Tcp服务方面提供了更高层次的抽象,体现在网络数据的发送和接受方面,是TcpClient使用标准的St...

6075

扫码关注云+社区

领取腾讯云代金券