Python开发---19文件
Posted 兰智杰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python开发---19文件相关的知识,希望对你有一定的参考价值。
文件的打开
1、open函数
在python中,使用open函数,打开一个已经存在的文件,或者新建一个新文件
语法:open(name,mode,buffering,encoding)
name:一个包含了要访问的文件名称的字符串值(区分绝对路径和相对路径)
mode:决定了打开文件的模式:只读,写入,追加等;这个参数是非强制的,默认文件访问模式为只读(r)
buffering : 如果 buffering 的值被设为 0,就不会有寄存;如果 buffering 的值取 1,访问文件时会寄存行;如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小;如果取负值,寄存区的缓冲大小则为系统默认
encoding:一般情况下都加上encoding= \'utf-8\'这一句,避免显示乱码
2、with…open
关键字with在不再需要访问文件后将其关闭,换言之就是不用写close()语句;你只管打开文件,并在需要时使用它,Python自会在合适的时候自动将其关闭;也可以调用open()和close()来打开和关闭文件,但这样做时,如果程序存在bug,导致close()语句未执行,文件将不会关闭
with open(\'python.txt\',\'r\',encoding= \'utf-8\' ) as files: contnet = files.read() #注意缩进 print(contnet) #输出为 SKT的中单是Faker;SKT的打野是Bengi
关闭文件
对于文件的操作结束之后,使用close()来关闭文件
语法:文件对象.close()
#打开文件 files = open(\'python.txt\',\'r\',encoding= \'utf-8\' ) #读取文件内容 content = files.read(13) #传入参数会读取指定的长度 print(content) #输出为 SKT的中单是Faker; content = files.read() #读取数据保存在content变量当中 #输出读取的内容,read()读取到的是光标以后的所有数据 print(content) #输出为 SKT的打野是Bengi #关闭文件 files.close()
文件读取
read(num):可以读取文件里面的内容;num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据
readlines:可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素
注意:读取文本文件时,Python将其中的所有文本都解读为字符串,如果读取的是数字,并要将其作为数值使用,就必须使用函数int()将其转换为整数,或使用函数float()将其转换为浮点数
files = open(\'python.txt\',\'r\',encoding= \'utf-8\' ) content = files.readlines() print(content) #输出为 [\'SKT的中单是Faker;\\n\', \'SKT的打野是Bengi\'] files.close() with open(\'python.txt\',\'r\',encoding= \'utf-8\' ) as files: contnet = files.readlines() #按行读取文件内容,保存在列表当中 print(contnet) #输出为 [\'SKT的中单是Faker;\\n\', \'SKT的打野是Bengi\']
文件的读取与循环操作
\'\'\' 输出为 这是第1行内容:SKT的中单是Faker; 这是第2行内容:SKT的打野是Bengi \'\'\' # 用open结合for循环逐行读取 files = open(\'python.txt\',\'r\',encoding= \'utf-8\') i = 1 for line in files: #没有使用read print(\'这是第%d行内容:%s\'%(i,line)) i+=1 files.close() # 用with结合for循环逐行读取 (两种不同方式,结果一样) with open(\'python.txt\',\'r\',encoding= \'utf-8\') as files: i = 1 for line in files: #没有使用read print(\'这是第%d行内容:%s\'%(i,line)) i+=1 # 用open结合for,readlines循环逐行读取,注意这里的循环操作是在文件操作外执行的 files = open(\'python.txt\',\'r\',encoding= \'utf-8\') contents = files.readlines()#逐行读取内容 files.close()#关闭文件 i = 1 for line in contents: #没有使用read print(\'这是第%d行内容:%s\'%(i,line)) i+=1 files.close() with open(\'python.txt\',\'r\',encoding= \'utf-8\') as files: contents = files.readlines() i = 1 for line in contents: #没有使用read print(\'这是第%d行内容:%s\'%(i,line)) i+=1
文件写入
如果要写入的文件不存在,函数open()将自动创建它;可以使用文件对象的方法write()将一个字符串写入文件,这个程序是没有终端输出的,函数write()不会在写入的文本末尾添加换行符,需要手动添加\\n
注意:Python只能将字符串写入文本文件,要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式
\'\'\' python.txt文件里的内容变为: SKT的ADC是Bang;SKT的辅助是Wolf SKT加油啊 \'\'\' #以写的方式打开一个文件 files = open(\'python.txt\',\'w\',encoding=\'utf-8\') content = \'SKT的ADC是Bang;\' files.write(content) #写入数据 files = open(\'python.txt\',\'a\',encoding=\'utf-8\') content = \'SKT的辅助是Wolf\' files.write(content) #写入数据 files.close() with open(\'python.txt\',\'a\',encoding=\'utf-8\') as files: content = \'\\nSKT加油啊\' # \\n表示换行 files.write(content)
常用函数
1、tell查看文件指针
\'\'\' 1、文件打开方式为文本模式时,代表读取3个字符 2、文件打开方式为b模式时,代表读取3个字节 输出为 当前读取的数据是:SKT的ADC是Bang; 当前的位置是: 19 当前读取的数据是:SKT的辅助是Wolf SKT加油啊 当前的位置是: 52 \'\'\' files = open(\'python.txt\',\'r\',encoding=\'utf-8\') str = files.read(13) print(\'当前读取的数据是:\'+str) #查看文件的指针 position = files.tell() print(\'当前的位置是:\',position) str = files.read() print(\'当前读取的数据是:\'+str) #查看文件的指针 position = files.tell() print(\'当前的位置是:\',position) files.close()
2、seek 设置指针
\'\'\' 输出为 当前读取的数据是:SKT的ADC是Bang; 当前的位置是: 19 当前读取的数据是:ADC 当前的位置是: 9 \'\'\' files = open(\'python.txt\',\'r\',encoding=\'utf-8\') str = files.read(13) print(\'当前读取的数据是:\'+str) # 查看文件的指针 position = files.tell() print(\'当前的位置是:\',position) # 重新设置文件的指针 files.seek(6,0) #一个汉字代表三个字符 str = files.read(3) print(\'当前读取的数据是:\'+str) # #查看文件的指针 position = files.tell() print(\'当前的位置是:\',position) files.close()
以上是关于Python开发---19文件的主要内容,如果未能解决你的问题,请参考以下文章
14.VisualVM使用详解15.VisualVM堆查看器使用的内存不足19.class文件--文件结构--魔数20.文件结构--常量池21.文件结构访问标志(2个字节)22.类加载机制概(代码片段
android.view.InflateException:二进制 XML 文件第 15 行:二进制 XML 文件第 19 行:膨胀类片段时出错
我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?
19 01 11 javascript ?????????????????????(???????????????) ??????????????????????????????(代码片段