com域名的网站,文章网站哪里建设好,大型网站外链是怎么建设的,石家庄权威发布【一】操作流程#xff1a;
打开文件#xff0c;得到一个文件句柄#xff08;对象#xff09;#xff0c;赋给一个对象。通过文件句柄对文件进行操作。关闭文件。
【 二 】 使用方法
open#xff08;路径 文件名#xff0c;读写模式#xff09;
如下#xff1a; …【一】操作流程
打开文件得到一个文件句柄对象赋给一个对象。通过文件句柄对文件进行操作。关闭文件。
【 二 】 使用方法
open路径 文件名读写模式
如下
f open(1.txt,a)
f.write(8)
f.write(9\n)
f.close()
使用追加的方式打开1.txt 赋值给f追加89 然后关闭文件
with的作用
with open(file) as f:#对f进行文件操作
相当于
f open(file)
#对f进行文件操作
f.close()
或者更严格的相当于
f open(file)
try:#对f进行文件操作
finally:f.close()
with相当于一个智能化的赋值方法其可以在最后来自动的关闭文件。即使对文件f的操作报错文件操作未进行with可以仍然使得文件关闭。
【 三 】常用模式有
1.打开文件的模式有(默认为文本模式)
r 只读模式【默认模式文件必须存在不存在则抛出异常】
w 只写模式【不可读不存在则创建存在则清空内容在写入】
a 只追加写模式【不可读不存在则创建存在则只追加内容】2.对于非文本文件我们只能使用b模式。
注以b方式打开时读取到的内容是字节类型写入时也需要提供字节类型不能指定编码。
rb 以二进制读取
wb 以二进制写入
ab 以二进制追加3.‘’模式就是增加了一个功能
r 读写【可读可写】
w 写读【可写可读】
a 写读【可写可读】4.以bytes类型操作的读写写读写读模式
rb 读写【可读可写】
wb 写读【可写可读】
ab 写读【可写可读】5.关于r模式打开一个文件用于读写文件指针默认将会放在文件的开头。
注意如果在读写模式下先写后读那么文件就会出问题因为默认光标是在文件的最开始你要是先写则写入的内容会将原内容覆盖掉直到覆盖到你写完的内容然后在从后面开始读取。
# 文件其他模式中的内容是王副班最帅# 1. 先读后写
f1 open(其他模式, encodingutf-8, moder)
content f1.read()
print(content)
f1.write(王强强)
f1.close()3 2. 先写后读错误实例
f1 open(其他模式, encodingutf-8, moder)
f1.write(王强强)
content f1.read()
print(content) # 最帅
f1.close()【 四 】文件创建
1使用open函数 Python内置了一个名为open的函数它可以用于创建、打开和修改文件。 使用new_file.txt作为文件名并使用w作为访问模式。其中w代表写入模式它会创建一个新文件并允许写入内容。
2使用with关键字 在使用open函数创建文件时我们需要手动关闭文件以确保资源得到释放。为了简化这个过程Python提供了一个更好的方式即使用with关键字。示例如下
with open(new_file.txt, w) as file:# 在这里进行文件操作data file.write(name is age 18)pass
( 3 )文件不存在时创建文件
import os
file_path new.txt
if not os.path.exists(file_path):open(file_path, w).close()print(f文件 {file_path} 创建成功)
else:print(f文件 {file_path} 已存在)
【 四 】读文件
( 1 ) open()方法读取
file open(1.txt, r)
# 在此处进行文件读取操作
file.close() 2 with语句读取 with open(1.txt, r) as file:content file.read()print(content) 3 read方法 read()方法用于读取整个文件的内容并将其存储为一个字符串。例如要读取名为file.txt的文件的所有内容可以使用以下代码
file open(1.txt, r)content file.read()print(content) 5 readlines()方法 readlines()方法用于读取整个文件的内容并将其存储为一个列表列表中的每个元素表示文件中的一行。例如要读取名为file.txt的文件的所有内容可以使用以下代码
file open(1.txt, r)lines file.readlines()for line in lines:print(line) 6 readline()方法 readline()方法用于读取文件的一行内容并将其存储为一个字符串。每次调用readline()方法会读取文件中的下一行内容。例如要读取名为file.txt的文件的第一行内容可以使用以下代码
file open(1.txt, r)line file.readline()print(line)
【 五 】写文件
1 写入文件时的不同模式
覆盖模式“w”打开文件并将内容写入文件如果文件存在则覆盖原有内容。如果文件不存在则创建一个新的文件。追加模式“a”打开文件并将内容写入文件如果文件存在则在文件末尾添加内容。如果文件不存在则创建一个新的文件。读写模式“r”打开文件供读取和写入如果文件存在则覆盖原有内容。如果文件不存在将抛出FileNotFoundError异常。
2写入字符串数据
# 写入字符串数据
with open(1.txt, w) as file:file.write(Hello, World!\n)file.write(This is a new line.)
3写入字节数据
使用write()方法将字节数据写入文件。可以使用encode()方法将字符串转换为字节数据进行写入。
# 写入字节数据
with open(1.txt, wb) as file:content Hello, World!\nfile.write(content.encode(utf-8))
4writelines() 写入list内容不会在元素之间自动添加换行符。
【 六】总结文件中的一些操作方法 f.read([size]) #size为读取的长度以byte为单位 f.readline([size]) #读一行如果定义了size有可能返回的只是一行的一部分 f.readlines([size]) #把文件每一行作为一个list的一个成员并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数size是表示读取内容的总长也就是说可能只读到文件的一部分。 f.write(str) #把str写到文件中write()并不会在str后加上一个换行符 f.writelines(seq) #把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实地写入不会在每行后面加上任何东西包括换行符。 f.close() #关闭文件。python会在一个文件不用后自动关闭文件不过这一功能没有保证最好还是养成自己关闭的习惯。 如果一个文件在关闭后还对其进行操作会产生ValueError f.flush() #把缓冲区的内容写入硬盘 f.fileno() #返回一个长整型的”文件标签“ f.isatty() #文件是否是一个终端设备文件unix系统中的 f.tell() #返回文件操作标记的当前位置以文件的开头为原点 f.next() #返回下一行并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时就是调用next()函数来实现遍历的。 f.seek(offset[,whence]) #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的一般为正数。但如果提供了whence参数就不一定了whence可以为0表示从头开始计算1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意如果文件以a或a的模式打开每次进行写操作时文件操作标记会自动返回到文件末尾。 f.truncate([size]) #把文件裁成规定的大小默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大依据系统的不同可能是不改变文件也可能是用0把文件补到相应的大小也可能是以一些随机的内容加上去。 【七】 文件的读写模式 【 八 】指针定位
tell() 方法用来显示当前指针的位置。
f open(test.txt)
print(f.read(10)) # read 指定读取的字节数
print(f.tell()) # tell()方法显示当前文件指针所在的文字
f.close()seek(offset,whence)方法用来重新设定指针的位置。
offset:表示偏移量whence:只能传入012中的一个数字。 0表示从文件头开始1表示从当前位置开始2 表示从文件的末尾开始
f open(test.txt,rb) # 需要指定打开模式为rb,只读二进制模式print(f.read(3))
print(f.tell())f.seek(2,0) # 从文件的开头开始跳过两个字节
print(f.read())f.seek(1,1) # 从当前位置开始跳过一个字节
print(f.read())f.seek(-4,2) # 从文件末尾开始往前跳过四个字节
print(f.read())f.close()