文件打开/读入
fname = input('请输入要打开的文件名称(包含路径):') # 用户输入这个文件的名称,并保存为fnamefo = open(fname,'r') # 以只读模式打开这个文件,文件句柄(handle,中间媒介)为fo
txt = fo.read() #使用read,将文件一次性读取,并保存为一个字符串txt
#....中间省略n行(对全文txt进行处理的过程)
fo.close()
我第2行'r' 已经把fname以只读方式打开了,为啥第3行还要用read再打开一次?这不是画蛇添足?
为啥不把第2行和第3行合并为:txt = fname.read()
或者干脆就只要第2行就够了:txt = open(fname,'r') open() 函数用于打开文件,返回的是一个文件对象,read() 是用于读取文件内容,作用不一样的哈 本帖最后由 Twilight6 于 2020-7-18 07:24 编辑
我第2行'r' 已经把fname以只读方式打开了,为啥第3行还要用read再打开一次?这不是画蛇添足?
open 是打开文件,而不是读取文件,open 返回的是一个文件对象,当你 f.read() 、readline()、readlines() 的时候才是读取文件内容
为啥不把第2行和第3行合并为:txt = fname.read()?或者干脆就只要第2行就够了:txt = open(fname,'r')?
open 的第一个参数是文件路径字符串,第二个参数的打开模式,你怎么能把文件路径直接 read() 呢,read() 是文件对象的方法,而不是字符串的方法
这些算是语法规则吧,就不用纠结这些了,也并不是画蛇添足,你打开一个文件对象后,可以自行选择如何读取文件,比如 read(n) 里面可以填个参数,读取的字符数
各种用法有各种用法的功能,存在即合理,不必纠结
页:
[1]