文件操作专项测试
考察知识点
- 文件打开与关闭:open()函数、文件模式、close()方法
- 读操作:read()、readline()、readlines()方法
- 写操作:write()、writelines()方法、追加模式
- 文件路径:相对路径、绝对路径、路径拼接
csv模块可以读取和写入CSV格式文件,CSV文件以逗号分隔各列数据。
json模块可以将Python对象序列化为JSON字符串,也可以将JSON字符串反序列化为Python对象。
pathlib模块提供了面向对象的方式来处理文件路径,比os.path更现代和直观。
文件指针指示当前读写位置,打开文件后指针默认在文件开头(位置0)。
要将文件指针移动到文件开头,应该使用哪个方法?
使用pathlib拼接路径Path('/home') / 'user' / 'doc.txt'的结果是什么?
将Python字典转换为JSON字符串,应该使用哪个函数?
执行json.loads('{"a": 1, "b": 2}')的结果是什么类型?
使用csv.DictReader读取CSV文件时,每行数据以什么形式返回?
读取CSV文件时,csv.reader()返回的每一行是什么类型?
Path对象p = Path('/tmp/test.txt'),判断文件是否存在的方法是?
打开文件读取内容后,f.tell()返回什么?
关于文件路径处理,以下说法正确的是?
关于json模块,以下说法正确的是?
关于文件指针操作,以下说法正确的是?
关于csv模块,以下说法正确的是?
json模块有四个核心函数。将Python对象转为JSON字符串使用____________(),将JSON字符串转为Python对象使用____________()。写入JSON文件使用json.____________(obj, file),读取JSON文件使用json.load(file)。函数名带s结尾表示处理字符串,不带s表示处理文件。中文显示需要设置ensure_ascii=False,格式化输出使用indent参数。
csv模块读取CSV文件:使用____________(file)返回列表形式的每行数据,使用____________(file)返回字典形式(键来自____________行)。写入CSV文件:使用csv.writer(file)写入列表数据,使用csv.DictWriter(file, fieldnames=['列名'])写入字典数据。Windows系统写入CSV需要设置newline=''防止多余空行。csv.delimiter参数可以指定分隔符,默认是逗号。
文件指针操作中,____________(0)将指针移到文件开头,____________()返回当前指针位置。seek方法第二个参数whence可以是0(文件____________)、1(当前位置)或2(末尾)。获取文件大小需要先seek(0, 2)移到末尾,再调用tell()获取位置。文本模式下只能从开头seek,二进制模式下可以任意位置seek。
pathlib模块使用____________对象处理路径,路径拼接使用____________运算符。Path对象的____________()方法检查路径是否存在,is_file()检查是否是文件,is_dir()检查是否是目录。获取文件名用name属性,获取扩展名用suffix属性,获取不含扩展名的文件名用stem属性,获取父目录用parent属性。当前目录用Path.cwd()获取。