7.8 精选练习-[Python]

By | 2022年1月6日

一、选择题

1–5  CBDBC

6-10  CCDAB   

二、填空题

1.   3

2.   2

3.   flush()

4.   open()

5.   with

6.   listdir()

7.   exists()

8.   isfile()

9.   isdir()

10.  splitext()

11.  'w'

12.  文本文件   二进制文件

13.  B 10

 

三、判断题

1–5  FFFFT

6-10 TFFTT

11-16TTTTTT

四、问答题

下面的代码本意是把当前文件夹中所有html文件都改为htm文件,仔细阅读代码,简要说明可能存在的问题。

import os

file_list=os.listdir(".")

for filename in file_list:        

    pos = filename.rindex(".")

    if filename[pos+1:] == "html":

        newname = filename[:pos+1]+"htm"

        os.rename(filename,newname)

        print(filename+"更名为:"+newname)

答:

对于字符串对象,如果要查找的子字符串不存在,则rindex()方法会抛出异常。所以,如果当前文件夹中有不包含圆点的文件名或者子文件夹名,上面的代码会抛出异常而崩溃。

 

1.编写程序,在D盘根目录下创建一个文本文件test.txt,并向其中写入字符串hello world。

参考代码如下:

fp = open(r’D:\test.txt’, ‘a+’)

print(‘hello world’, file=fp)

fp.close()

 

2.从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。

参考代码如下:

if __name__ == '__main__':

    from sys import stdout

    filename = input('输入文件名:\n')

    fp = open(filename,"w")

    ch = input('输入字符串:\n')

    while ch != '#':

        fp.write(ch)

        stdout.write(ch)

        ch = input('')

    fp.close()

 

3.从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。

参考代码如下:

if __name__ == '__main__':

    fp = open('test.txt','w')

    string = input('please input a string:\n')

    string = string.upper()

    fp.write(string)

    fp = open('test.txt','r')

    print (fp.read())

    fp.close()

 

4.有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中。

参考代码如下:

if __name__ == '__main__':

    import string

    fp = open('test1.txt')

    a = fp.read()

    fp.close()

 

    fp = open('test2.txt')

    b = fp.read()

    fp.close()

 

    fp = open('test3.txt','w')

    l = list(a + b)

    l.sort()

    s = ''

    s = s.join(l)

    fp.write(s)

    fp.close()