
8.1 文件:因为懂你,所以永恒 CPU-内存 CPU-硬盘 ========================================================== 8.1.1打开文件 open()函数打开并且返回文件对象 open()有很多参数,作为初学者,先关注第一和第二个参数即可。 open(带路径的文件名,指定文件打开模式) ---------------------------------------------- "r"只读模式(默认) "w"写入模式 覆盖已经存在的文件 "x"如果文件存在,此模式打开引发异常 "a"以写入模式打开,文件若存在,末尾追加写入 "b"以二进制打开文件 "t"以文本模式打开(默认) " "可读写模式 "U"通用换行符支持 ---------------------------------------------- f=open("命令.txt") 没有消息就是好消息,文件成功被打开了。 ============================================================ 8.1.2 文件对象的方法 close()关闭文件 read(size=-1)从文件读取size个字符,未给定或者为负值时候,读取剩余所有字符, 作为字符串返回 readline()从文件中读取一整行字符串 write(str)将字符串str写入文件 writelines(seq)向文件写入字符串序列,seq应该是一个返回字符串的可迭代对象 seek(offset,from)在文件中移动指针,从from(0-起始 1-当前 2-末尾)偏移offset个字节 tell()返回当前在文件中的位置 ============================================================== 8.1.3文件的关闭 close()用于关闭文件。忘记关闭Python最后会自动关闭文件。但是防止断电丢失数据,养成 使用完成后及时关闭文件的习惯。 8.1.4文件的读取和定位 文件的读取方法有很多:用文件对象的read()和readline()方法。也可以直接list(f)或者迭代 来读取。 read()是按照字节为单位读取,如果不设置参数,会全部读取,指针指向文件末尾。 tell()方法可以告诉你当前文件指针的位置。 代码如下 f=open("命令.txt",encoding="UTF-8") print(f.read()) print(f.tell()) print(f.seek(0,0)) print(f.read(4)) print(f.tell()) ---------------------------- 6. setdefault()方法和get()方法相似,区别是get()找不到返回空或指定值 而setdefault()方法在找不到的时候,进行设置添加值。 a={1:"one",2:"two",3:"three",4:"four"} print(a.setdefault(3)) print(a.setdefault(5)) 247 0 6. s 4 =========================== f=open("命令.txt",encoding="UTF-8") print(f.readline()) ------------------------readline()读取一行,直到遇到\n为止 6. setdefault()方法和get()方法相似,区别是get()找不到返回空或指定值 ======================================== 列表也很强大,什么都可以往里面放! print(list(f)) ------------------ ['6. setdefault()方法和get()方法相似,区别是get()找不到返回空或指定值\n', '而setdef...] ======================================================== 用了列表去装载后,可以发现,元素个数由行数决定了,列表元素个数=行数。 f=open("命令.txt",encoding="UTF-8") f.seek(0,0) lines=list(f) for each in lines: print(each) ------------------上述没有错,只是有点酒精灯烧开水----效率低。因f本身支持迭代! f=open("命令.txt",encoding="UTF-8") f.seek(0,0) for each in f: print(each) ---------------------- 6. setdefault()方法和get()方法相似,区别是get()找不到返回空或指定值
而setdefault()方法在找不到的时候,进行设置添加值。
a={1:"one",2:"two",3:"three",4:"four"}
print(a.setdefault(3))
print(a.setdefault(5))
===================================================================== 8.1.5 文件的写入 如果要写入文件,请确保打开之前模式有"w"或"a",否则出错 f=open(r"C:\Users\Daodantou\Desktop\record.txt",encoding="UTF-8") f.write("中华人民共和国万岁") ------------- 写入失败 ----------------- Traceback (most recent call last): File "C:/Users/Daodantou/PycharmProjects/s14/day7/t2.py", line 2, in <module> f.write("中华人民共和国万岁") io.UnsupportedOperation: not writable =================================================改写代码 f=open(r"C:\Users\Daodantou\Desktop\record.txt","a",encoding="UTF-8") f.write("中华人民共和国万岁") f.close() -------------------------------------------------------- ======我就是个跟屁虫。=======中华人民共和国万岁 ========================================================================== f=open(r"C:\Users\Daodantou\Desktop\record.txt","w",encoding="UTF-8") f.write("中华人民共和国万岁") f.close() --------------------------- 中华人民共和国万岁
|