#第一部分 文件操作 #一次性读取文本文件内容 with 关键字会自动调用 close()函数关闭文件 with open("text_files\pi_digits.txt") as file_object: contents = file_object.read() # print(contents) print(contents.rstrip()) print("++++++++++++++++++++++++++++++++++++++++++++++++++++") #逐行读取 with open("text_files\pi_digits.txt") as file_object: for line in file_object: print(line) print("++++++++++++++++++++++++++++++++++++++++++++++++++++") #readlines()从文件中读取每一行,并将其存储在一个列表中; pi_string = "" with open("text_files\pi_digits.txt") as file_object: lines = file_object.readlines() for line in lines: pi_string += line.strip() print("pi_string:",pi_string) #判断一个字符串是否在另一个字符串,用IN 就可以了 #写入文件 open函数 有两个实参,第一个是要打开文件的名称;第二个是读写模式 r 读取模式 w 写入模式 a 附加模式 r+ 读取和写入 filename = "text_files\programming.txt" with open(filename,"w") as file_object: file_object.write("I love programming.\n") file_object.write("I love creating new games.\n") #第二部分 异常 try-except # 1 ZeroDivisionError异常 first_number = 5 second_number = 0 try: answer = (first_number/second_number) except ZeroDivisionError: print("You can't divide by zero!") else: #如果try代码块成功执行,则执行else代码块 print(answer) # 2 FileNotFoundError异常 filename = 'alice.txt' try: with open(filename) as file_object: contents = file_object.read() except FileNotFoundError: print('Sorry,the file does not exits') # 分析文本 统计单词 filename = "alicce.txt" try: with open(filename) as f_obj: contents = f_obj.read() except FileNotFoundError: # print('Sorry,the file does not exits') pass else: #计算文件大致包含多少个单词 worlds = contents.split() number_words = len(worlds) print("The file"+filename+"has about"+str(number_words)+"words.") #第三部分 模块 JSON # 导入json ,json.dump()写入文件,两个参数 要存储的数据和可用于存储数据的文件对象 # json.load() 将文件内容读取到内存 import json #如果以前存储了用户名,就加载它 #否则,就提示用户输入用户名并存储它 filename = "username.json" try: with open(filename) as f_obj: username = json.load(f_obj) except FileNotFoundError: username = input('What is your name?') with open(filename,'w') as f_obj: json.dump(username,f_obj) print("We'll remember you when you come back,"+username+"!") else: print("Welcome back,"+username+"!") #第四部分 单元测试 unittest import unittest from name_function import get_formatted_name class NamesTestCase(unittest.TestCase): """测试name_function.py""" def test_first_last_name(self): """能够正确地处理像Janis Joplin这样的姓名吗?""" formatted_name = get_formatted_name('janis', 'joplin') self.assertEqual(formatted_name, 'Janis Joplin') def test_first_middle_last_name(self): """能够正确地处理像Wolfgang Amadeus Mozart这样的姓名吗?""" formatted_name = get_formatted_name(first='wolfgang',middle='amadeus',last='mozart') self.assertEqual(formatted_name,'Wolfgang Amadeus Mozart') # 运行单元测试 if __name__ == '__main__': unittest.main() # 最后对使用unittest模块的一些总结: # # 编写单元测试时,需要编写一个测试类,从unittest.TestCase继承 # 对每一个类测试都需要编写一个test_xxx()方法 # 最常用的断言就是assertEqual() # 另一种重要的断言就是期待抛出指定类型的Error,eg:with self.assertRaises(KeyError): # 另一种方法是在命令行通过参数-m unittest直接运行单元测试:eg:python -m unittest student_test # 最简单的运行方式是xx.py的最后加上两行代码: # if __name__ == '__main__': # unittest.main()
Python基础知识-2
于 2022-03-15 09:46:38 首次发布
这篇博客详细介绍了Python编程中的文件操作,包括一次性读取、逐行读取和读写模式。接着讲解了异常处理,如ZeroDivisionError和FileNotFoundError的捕获。然后讨论了如何使用JSON模块进行数据存储和读取。最后,博主分享了如何进行单元测试,使用unittest模块创建和运行测试用例。博客涵盖了基础编程技巧和最佳实践。
摘要由CSDN通过智能技术生成