码迷,mamicode.com
首页 > 编程语言 > 详细

二、Python开发---19、文件

时间:2019-10-24 22:03:35      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:大小   包含   encoding   调用   class   单位   相对路径   net   这一   

文件的打开

  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开发---19、文件

标签:大小   包含   encoding   调用   class   单位   相对路径   net   这一   

原文地址:https://www.cnblogs.com/lanzhijie/p/11734838.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!