第六章 文件和目录操作 课后练习题

这篇博客涵盖了Python中关于文件和目录的各种操作练习,包括读写文件、创建空文件、统计单词数、文件内容倒序、目录管理等,旨在帮助读者巩固文件I/O和目录操作的技能。
摘要由CSDN通过智能技术生成

目录

一、文件操作练习题

1.同时读写文件

2.创建一个空文件

3.读取文件的前两行

4.读取文件的奇数行

5.在文件中写入一个列表的内容

6.在文件中的0、2、4位置写入当前的文件位置偏移量

7.with写法读取文件内容

8.统计一个文件中单词个数

9.将一个文件的所有单词倒序写入文件中

二、课后综合练习题

1. 基础题:

2. 返回一个路径的目录名和文件名

3. 分离文件名与扩展名

4. 找出某个目录下所有的文件,并在每个文件中写入“gloryroad”

5. 如果某个目录下文件名包含txt后缀名,则把文件后面追加写一行“被我找到了!”

6. 命题练习:

7. 删除某个目录下的全部文件

8. 统计某个目录下文件数和目录个数

9. 使用程序建立一个多级的目录,在每个目录下,新建一个和目录名字一样的txt文件

10. 查找某个目录下是否存在某个文件名

11.用系统命令拷贝文件

12.输入源文件所在路径和目标目录路径,然后实现文件拷贝功能

13.遍历某个目录下的所有图片,并在图片名称后面增加_xx

14.遍历指定目录下的所有文件,找出其中占用空间最大的前3个文件

15.过滤py源码中的#注释,另存为文件result.py,并执行result.py,断言是否执行成功

16.文件访问,提示输入数字 N 和文件 F, 然后显示文件 F 的前 N 行.

17.从命令行接受1个路径如:c:\a\b\c\1.py, 实现1个函数创建目录a\b\c,创建文件1.py,实现1个函数删除已创建的目录及文件

18.有一个ip.txt,里面每行是一个ip,实现一个函数,ping 每个ip的结果,把结果记录存到ping.txt中,格式为 ip:0或ip:1 ,0代表ping成功,1代表ping失败

19.实现DOS命令执行功能,接受输入命令并执行,然后把执行结果和返回码打印到屏幕

20.文件访问


一、文件操作练习题

1.同时读写文件

fp = open("p6-1-file.txt","w+", encoding="utf-8")
content = ["文件操作\t练习题1\n"]
for i in range(5):
	content.append("测试行" + str(i) +"\n")

fp.writelines(content)
fp.seek(0,0)
lines = fp.read()
fp.close()
print(lines)


2.创建一个空文件

fp=open("p6-2-file.txt","w+")
fp.write("")
fp.seek(0,0)
print(fp.read())
fp.close()


3.读取文件的前两行

fp=open("p6-3-file.txt","r")
result = []
for i in range(2):
	result.append(fp.readline())

print("前两行文件内容是:",result)
fp.close()


4.读取文件的奇数行

fp = open("p6-4-file.txt","r",encoding="utf-8")
line_no = 1
odd_content = []
while 1:
	line = fp.readline()
	if line:
		if line_no % 2==1:
			odd_content.append(line)
		line_no += 1
	else:
		break

print("文件奇数行内容:", odd_content)
fp.close()


5.在文件中写入一个列表的内容

fp = open("p6-5-file.txt","w+")
content = ["hello\n","This is a test file!\n","\r\n","测\t试\n文\t件\r","\n"]
fp.writelines(content)
fp.seek(0,0)
print(fp.read())
fp.close()


6.在文件中的0、2、4位置写入当前的文件位置偏移量

fp=open("p6-6-file.txt","r+")
print("写入位置偏移量前的文件内容:",fp.read())
off=fp.seek(0,0)
fp.write(str(off))
off = str(fp.seek(2,0))
fp.write(off)
off = str(fp.seek(4,0))
fp.write(off)
fp.seek(0,0)
print("写入位置偏移量后的文件内容:",fp.read())
fp.close()


7.with写法读取文件内容

with open("p6-7-file.txt",encoding="utf-8") as fp:
	print(fp.read())


8.统计一个文件中单词个数

文件内容:
        glory road ,wu lao shi
        file,haha
        women, man, love

with open("p6-8-file.txt","w+") as fp:
	fp.write("glory road ,wu lao shi\nfile,haha\nwomen, man, love")
	fp.seek(0,0)
	content = fp.read()
	content = content.replace(","," ")
	print(content)
	l = content.split()
	print("文件中一共有%d个单词:%s" % (len(l),l))


9.将一个文件的所有单词倒序写入文件中

import string
fp = open("p6-9-before-file.txt","r",encoding="utf-8")
fp1 = open("p6-9-after-file.txt","w+",encoding="utf-8")
lines = fp.readlines()
result = []
tmp = ""
# 将文件内容倒序
for line in lines: # 遍历得到文件的每一行内容
	if line.strip():# 如果不是空行
		l_len =len(line)
		for i in range(l_len): # 遍历每一行的内容
			if line[i] not in string.ascii_letters: # 如果不是字母
				if tmp: # 如果tmp有内容
					result.append(tmp[::-1]) # 先把tmp单词倒序后,加到result中
				tmp = "" # 然后清空tmp
				result.append(line[i]) # 把非字母的部分,如空格 \n 中文 特殊符号等,直接加入result中
			else: # 如果是字母
				tmp += line[i] # 保存单词
			if i == l_len - 1 and tmp != "": # 处理文件末尾是单词,但单词后面没有其他任何内容的情况
				result.append(tmp[::-1])
				
	else: # 若是空行\n,就直接加到结果集中
		result.append(line)
fp.close()
fp1.write("".join(result))
fp1.seek(0,0)
print("倒序后的文件内容:",fp1.read())
fp1.close()

"""before文件内容如下:
tseN gge 储蓄金
 
sgnivas1, yenom tpek ni evreser
积蓄、贮备金
 
noD't yrrow tuoba eht boj uoy tsol. eW evah a elttil tsen gge ot evil no litnu uoy dnif rehtona.

ba测 测试 edc
"""

二、课后综合练习题

1. 基础题:

    检验给出的路径是否是一个文件:
    检验给出的路径是否是一个目录:
    判断是否是绝对路径:
    检验给出的路径是否真地存:
>>> import os.path
>>> os.path.isfile(r"F:\课后练习题\a.py")
True
>>> os.path.isfile(r"F:\课后练习题")
False
>>>
>>> os.path.isdir(r"F:\课后练习题\a.py")
False
>>> os.path.isdir(r"F:\课后练习题")
True
>>> os.path.isabs(r"F:\test\test.py")
True
>>> os.path.exists(r"F:\test\test.py")
False
>>> os.path.isabs(r"F:\课后练习题\a.py")
True
>>> os.path.exists(r"F:\课后练习题\a.py")
True
>>> os.path.isabs(r"a.py")
False
>>> os.path.exists(r"a.py")
True
>>> os.path.isabs(r"test\test1")
False

2. 返回一个路径的目录名和文件名

>>> import os.path
>>> os.path.dirname("F:\\test\\a\\test.txt")
'F:\\test\\a'
>>> os.path.basename("F:\\test\\a\\test.txt")
'test.txt'

3. 分离文件名与扩展名


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值