首页 > 技术文章 > python中的标准库函数学习整理

merryconei123 2020-06-28 11:41 原文

 
 1 """
 2     调用open(文件名,模式)时提供了两个实参。第一个实参是要打开的文件的名称;
 3     第二个实参可指定读取模式('r')、写入模式('w')、附加模式('a')或
 4     读取和写入文件的模式('r+')。如果你省略了模式实参,Python将以默认的只读模式
 5     打开文件。
 6     如果你要写入的文件不存在,函数open()将自动创建它。以写入('w')模式打开文件时
 7     ,如果指定的文件已经存在,Python将在返回文件对象前清空该文件。
 8     函数write()不会在你写入的文本末尾添加换行符
 9 """
10 
11 # 将用户输入的名字存储到文件guest.txt中
12 
13 while True:
14     # 提示用户输入姓名,输入'q'时结束输入
15     parrot = input("Please enter your name: ")
16     if parrot != "q":
17         with open('guest.txt','r+') as file_object:
18             file_object.write(parrot+'\n')
19     else:
20         break
 1 """
 2     方法open(文件路径)和close(文件路径)用来打开和关闭文件
 3     关键字with在不再需要访问文件后将其关闭
 4     使用关键字with时,open()返回的文件对象只在with代码块内可用
 5     方法read()读取这文件的全部内容
 6     方法readlines()从文件中读取每一行,并将其存储在一个列表中
 7 """
 8 with open('10\pi_digits.txt') as file_object:
 9     contents = file_object.read()
10     print(contents) 
11 
12 with open('10\pi_digits.txt') as file_object:
13     lines = file_object.readlines()
14     print(lines)
15     
16 with open('10\pi_digits.txt') as file_object:
17     contents = file_object.read()
18     lines = file_object.readlines()
19     print(contents) 
20     print(lines)
 1 # incoding=gbk
 2 
 3 """
 4     使用json.dump(存储的数据,存储数据的文件对象)
 5     和json.load(存储数据的文件对象)实现数据的存储和读取
 6 """
 7 
 8 import json
 9 
10 """
11     如果以前存储了用户名,就加载它
12     否则,就提示用户输入用户名并存储它
13 """
14 
15 file_name_path = 'username.json'
16 try:
17     with open(file_name_path) as file_object:
18         username = json.load(file_object)
19 except  FileNotFoundError:
20     username = input("What is your name? ")
21     with open(file_name_path,'w') as file_object:
22         json.dump(username,file_object)
23         print("We'll remember you when you come back,"+username.title()+'!')
24 else:
25     print("Welcome back,"+username.title()+'!')
26     

 1 # incoding=gbk
 2 
 3 """
 4     unittest Module中的断言方法,只能在继承unittest.TestCase的类中使用这些方法
 5     assertEqual(a, b)             核实a == b
 6     assertNotEqual(a, b)          核实a != b
 7     assertTrue(x)                 核实x为True
 8     assertFalse(x)                核实x为False
 9     assertIn(item, list)          核实item在list中
10     assertNotIn(item, list)       核实item不在list中
11     比如,方法assertEqual(返回值, 预期值)用来测试返回值和预期值是否相同,
12     使用前需要先调用模块unittest,
13     最后用unittest.main()来运行测试
14 """
15 
16 import unittest
17 from name_function_middle import get_formatted_name
18 
19 class NamesTestCase(unittest.TestCase):
20     """
21         测试类名要与被测试的函数相关,并包含字样Test,
22         必须继承unittest.TestCase类
23     """
24     
25     def test_first_last_name(self):
26         formatted_name = get_formatted_name('line','vipper')
27         self.assertEqual(formatted_name,'Line Vipper')
28     
29     def test_first_middle_last_name(self):
30         formatted_name = get_formatted_name('line','vipper','jugg')
31         self.assertEqual(formatted_name,'Line Jugg Vipper')
32     
33     unittest.main()
 1 # incoding=gbk
 2 
 3 """
 4     方法setUp()做了两件事情:创建一个调查对象;创建一个答案列表。存储这两样
 5     东西的变量名包含前缀self(即存储在属性中),因此可在这个类的任何地方使用。
 6     运行测试用例时,每完成一个单元测试,Python都打印一个字符:测试通过时打印一个
 7     句点;测试引发错误时打印一个E;测试导致断言失败时打印一个F。
 8 """
 9 
10 import unittest
11 from survey import AnonymousSurvey
12 
13 class TestAnonymousSurvey(unittest.TestCase):
14     """针对 AnonymousSurvey 类的测试"""
15     
16     def setUp(self):
17         """创建一个调查对象和一组答案,供使用的测试方法使用"""
18         
19         question = "What language did you first learn to speak?"
20         self.my_survey = AnonymousSurvey(question)
21         self.responses = ['english','spanish','mandarin']
22         
23     def test_store_single_response(self):
24         """测试单个答案会被妥善存储"""
25         
26         self.my_survey.stored_responses('english')
27         
28         self.assertIn('english',self.my_survey.responses)
29         
30     def test_store_three_response(self):
31         """测试三个答案会被妥善存储"""
32         
33         for response in self.responses:
34             self.my_survey.stored_responses(response)
35         
36         for response in self.responses:
37             self.assertIn(response,self.my_survey.responses)
38 
39 unittest.main()

推荐阅读