一、实验目的:
(1)掌握文件的打开方法
(2)掌握文件的读写方法
(3)掌握文件的操作
二、实验环境:
联网计算机一台/每人,内装Windows 7以上操作系统和安装Python 3.7集成开发环境IDLE。
三、实验内容:
1. 随机生成100-999的1000个整数,每个整数占一行,写入D:\test.txt文件中.
2. 读取sy9-1中生成的test.txt,统计其中个位数为5的数字的个数。
3. 读取sy9-1中生成的test.txt,分别将第100,200,…,1000个数加1
四、实验步骤与结果
1. 随机生成100-999的1000个整数,每个整数占一行,写入D:\test.txt文件中。
源代码:
import random # 打开文件用于写入 with open('D:\\test.txt', 'w') as file: # 生成1000个100-999范围内的随机整数 for _ in range(1000): number = random.randint(100, 999) # 写入文件,每个数字后跟一个换行符 file.write(f"{number}\n")
运行效果:
2. 读取sy9-1中生成的test.txt,统计其中个位数为5的数字的个数。
源代码:
# 打开文件用于读取 with open('D:\\test.txt', 'r') as file: # 初始化计数器 count = 0 # 逐行读取文件 for line in file: # 去除行尾的换行符 number = line.strip() # 检查个位数是否为5 if int(number[-1]) == 5: count += 1 # 输出统计结果 print(f"个位数为5的数字个数为: {count}")
运行效果:
3. 读取sy9-1中生成的test.txt,分别将第100,200,…,1000个数加1。
源代码:
# 打开文件用于读取 with open('D:\\test.txt', 'r') as file: # 读取文件内容到列表中 numbers = file.read().splitlines() # 修改指定位置的数字 for i in range(100, 1001, 100): if i < len(numbers): # 将数字转换为整数,加1,再转换回字符串 numbers[i] = str(int(numbers[i]) + 1) # 打开文件用于写入 with open('D:\\test.txt', 'w') as file: # 将修改后的数字写回文件 file.write('\n'.join(numbers))
运行效果:
代码首先打开D:\\test.txt文件进行读取,并将所有数字读取到一个列表中。然后,它遍历从100开始,步长为100,直到1000的索引,检查这些索引是否在列表的有效范围内。如果索引有效,它将该位置的数字转换为整数,加1,然后再转换回字符串,并更新列表中的对应元素。最后,代码打开文件进行写入,将修改后的数字列表重新写入文件,每个数字占一行。
五、总结:
1. 实验过程中的问题及解决方法:
(1)文件权限问题:没有足够的权限访问或在D:\目录下创建文件。
解决方法:确保在尝试写入文件之前,您有权限在该目录下创建和修改文件。如果没有,请更改目录或以管理员身份运行您的编程环境。
(2)目录不存在:D:\目录不存在或被错误地键入。
解决方法:检查目录是否存在,如果不存在,则创建它,或者更改到一个存在的目录。
(3)磁盘空间不足:磁盘空间不足,无法创建新文件。
解决方法:清理磁盘空间,或者选择其他有足够空间的磁盘分区。
(4)编程语言库的使用:不熟悉如何在使用的编程语言中生成随机数或写文件。
解决方法:查阅文档来了解如何在该编程语言中使用随机数生成库和文件操作函数。
2. 实验收获:
实验中涉及到了数据类型的转换,特别是字符串和整数之间的转换,这是数据处理中常见的需求,在编写和修改代码的过程中,需要不断地测试代码以确保其正确性。这有助于提高解决问题的能力和代码质量,通过编写脚本自动完成重复性任务,可以大大提高工作效率,这也是学习编程的重要动力之一,实验中介绍了如何处理和转换文件中的数据,例如生成随机数、修改特定数据等。这强调了数据处理对于编程任务的重要性。
📝大佬觉得本文有所裨益,不妨轻点一下👍给予鼓励吧!
❤️❤️❤️本人虽努力,但能力尚浅,若有不足之处,恳请各位大佬不吝赐教,您的批评指正将是我进步的动力!😊😊😊
💖💖💖若您认为此篇文章对您有所帮助,烦请点赞👍并收藏🌟,您的支持是我前行的最大动力!
🚀🚀🚀任务在默默中完成,价值在悄然间提升。让我们携手共进,一起加油,迎接更美好的未来!🌈🌈🌈