7.4  习题
7.1  从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。
程序源代码:
if __name__ == '__main__':
    filename = input('输入文件名:\n')
    fp = open(filename,"w")
    ch = input('输入字符串:\n')
    while ch != '#':
        fp.write(ch)
        print(ch)
        ch = input("")
    fp.close()
filename = input('输入文件名:\n')
fp = open(filename , "w+")
ch = ''
while '#' not in ch:
    fp.write(ch)
    ch = input('输入字符串:\n')
fp.close()
7.2  从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。
程序源代码:
if __name__ == '__main__':
    fp = open('','w')
    string = input('please input a string:\n')
    string = string.upper()
    fp.write(string)
    fp = open('','r')
    ad())
order by desc是升序    fp.close()
import sys
str = input('请输入一个字符串:\n')
with open('','w') as f:
    f.write(str.upper())
7.3  有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
程序源代码:
if __name__ == '__main__':
    import string
    fp = open('')
    a = fp.read()
    fp.close()
    fp = open('')
    b = fp.read()
    fp.close()
    fp = open('','w')
    l = list(a + b)
    l.sort()
    s = ''
    s = s.join(l)
    fp.write(s)
    fp.close()
运行以上程序前,你需要在脚本执行的目录下创建 、 文件。
以上程序执行成功后,打开 文件可以看到内容如下所示:
123456
def read(filename):
    f = open(filename,"r+")
    a = f.readlines()
    return a
s = list("".join(read("")+read("")))
s.sort()
s1 = "".join(s)
t = open("","w+")
t.writelines(s1)
t.close()
with open('') as f1, open('') as f2, open('2.txt', 'w') as f3:
    for a in f1:
        b = f2.read()
    c = list(a + b)
    c.sort()
    d = ''
    d = d.join(c)
    f3.write(d)
1、有如下文件,a1.txt,里面的内容为:
老男孩是最好的培训机构,
全心全意为学生服务,
只为学生未来,不为牟利。
我说的都是真的。哈哈
分别完成以下的功能:
a,将原文件全部读出来并打印。
with open("a1.txt",encoding="utf-8") as f1:
    ad()
    print(data)
b,在原文件后面追加一行内容:信不信由你,反正我信了。
with open("a1.txt","a+",encoding="utf-8") as f1:
    ad()
    print(data)
    f1.write("信不信由你,反正我信了。")
c、将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了。
with open("a1.txt","a+",encoding="utf-8") as f1:
    ad()
    print(data)
    f1.write("\n信不信由你,反正我信了。")
d、将原文件全部清空,换成下面的内容:
每天坚持一点,
78的原码反码补码每天努力一点,
每天多思考一点,
慢慢你会发现,
你的进步越来越大。
    f1.write("每天坚持一点,\n每天努力一点,\n每天多思考一点,\n慢慢你会发现,\n你的进步越来越大。")
e、将原文件内容全部读取出来,并在‘我说的都是真的。哈哈’这一行的前面加一行,‘你们就信吧~’然后将更改之后的新内容,写入到一个新文件:a1.txt。import os
【】编写程序,比较两个文件是否相同。如果不同,输出首次不同处的行号和列号。
1.设计思路
定义两个文件指针,指向要打开的两个文件。分别逐行读取两个文件,并进行比较。
offset函数和match函数嵌套
第一次遇到不相同的两行时,再逐列比较,最后输出比较结果。
程序代码如下:
def main():
爱心代码编程手机版
    # 输入文件所在路径和文件名,如C:\
    str1=input('请输入文件1所在路径和文件名:')
    str2=input('请输入文件2所在路径和文件名:')
    file1=open(str1, 'r')  # 以只读方式打开文件
    file2=open(str2, 'r')
    # 用readlines()方法把文件内容逐行读入一个列表对象
    adlines()
    adlines()
    file1.close()  # 关闭打开的文件
    file2.close()
    result, row, col =compareFile(listFile1, listFile2)  # 调用比较函数
    if(result==1):  # 函数的第一个返回结果为1,则相等
        print("这两个文件相等")
    else:  # 函数的第一个返回结果为0,则不相等。后两个参数是行、列所在位置
        print("这两个文件在{0}行{1}列开始不相等".format(row, col))
# 定义文件比较函数,参数是列表对象
def compareFile(file1, file2):
    # 计算第一个列表的元素个数,即行数
    len1=len(file1)
    len2=len(file2)
    minlen1=min(len1, len2)  # 计算两个列表的最小行数
    for i in range(minlen1):  # 用最小行数进行迭代和比较
        print(file1[i], file2[i])  # 输出两个列表的当前行
        if(file1[i] != file2[i]):  # 如果这两行不相等,判断是在哪一列不相等
            minlen2=min(len(file1[i]), len(file2[i]))  # 获得这两行最小的列数
            for j in range(minlen2):  # 用最小的列数进行迭代和比较
                if(file1[i][j] != file2[i][j]):
                    return [0, i+1, j+2]  #返回不相等所在的行号和列号
            else:
                if(len(file1) != len(file2)):  # 若这两行的列数不相同,则也不相等
                    return [0, i+1, 1]
    else:
        if(len(file1) != len(file2)):  # 若两个文件的行数不同,则也不相等
            return [0, minlen1+1, 1]
        else:
python编程基础教程课后答案
            return [1, 0, 0]  # 两个文件相等
main()# 运行main()函数
2.处理文件:用户指定要查的文件和内容
将文件中包含要查内容的每一行都输出到屏幕
def search():
    with open("a1.txt",encoding="utf-8") as f1:
        for i in f1:
            if "我" in i:
tablet pc input panel accessory 已停止工作                yield i
g=search()
for i in g:
    print(i.strip())
3.写生成器,从文件中读取内容,在每一次读取到的内容之前加上‘***’之后再返回用户
def file_add():
    with open("a1.txt",encoding="utf-8") as f1:
        for i in f1:
            yield "***"+i

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。