美文网首页
python基础●文件

python基础●文件

作者: 尔果 | 来源:发表于2019-06-03 16:02 被阅读0次

    打开与关闭

    注意:在文档中,有好几处代码,我只是将要执行的代码放了上面,并没有展示执行后的结果。希望各位自己动手执行下看看结果。这样有助于理解,自己动手实践总比只是看看要好的多。

    打开

    在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件

    open(文件名,访问模式)

    f = open('test.txt','w')   # f 只是个用来接收的变量名,随意取

    说明一下打开中 携带的参数

    第一个参数:“文件路径/文件名.文件类型”  ,如:f = open('C:\\Users\\Administrator\\Desktop\\test.txt','w')

    (注:不加路径的话默认为当前脚本文件所在的路径,咱们正常的路径是 只有一个 \ 的。我们这儿要加两个 \ 是为了转义 \)

    第二个参数:是文件打开的方式

    文件关闭

    关闭就简直不能再简单了,直接执行 close() 方法就好了

    如:

    # 新建一个文件,文件名为:

    test.txtf = open('test.txt','w')

    # 关闭这个文件

    f.close()

    文件的读写

    写:使用write 方法,如:

    f = open('test.txt','w')

    f.write('hello world, i am here!')

    f.close()

    在使用write()方法写文件时,如果之前不存在这文件,会自动创建并写入,如果原先存在该文件,则会把原文件中的数据清空,再重写

    读:我们知道了写用write,那么也该猜到写就用read 了。正如你所想,我们直接来看看文件的read()

    f = open('test.txt','r')

    content = f.read(5)

    print(content)print("-"*30)

    content = f.read()

    print(content)

    f.close()

    我们看到上面的read()方法中放了一个参数5,我们先来解释下。

    使用read(5)可以从文件中读取数据,参数5表示要从文件中读取的数据的长度(单位是字节),如果没有传入这个参数,直接使用read(),那么就表示读取文件中所有的数据

    注意点:使用read(参数),多次读取文件时,每次读取都是从上一次读取截止的地方往后读取。比如文件里面有‘12345’ 五个字,第一次读了read(3),那么第二次再执行read(3)时,会从第三个开始往后读3个字节

    我们再看另一个读的方法readlines()

    readlines()就像read()没有参数时一样,可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素

    f = open('test.txt','r')

    content = f.readlines()

    print(type(content))

    i=1

    for temp in content: 

         print("%d:%s"%(i, temp)) 

         i+=1

    f.close()

    再看一个 readline()   #比上面的readlines()少个 s

    f = open('test.txt','r')

    content = f.readline()

    print("1:%s"%content)

    content = f.readline()

    print("2:%s"%content)

    f.close()

    文件的定位读写

    :获取当前文件位置
    # 打开一个已经存在的文件

    f =open("test.txt", "r")

    str = f.read(3)

    print "读取的数据是 : ", str

    # 查找当前位置

    position = f.tell()

    print "当前文件位置 : ", position

    str = f.read(3)

    print "读取的数据是 : ", str

    # 查找当前位置

    position = f.tell()

    print "当前文件位置 : ", position

    f.close()

    文件的定位与设置位置

    如果在读写文件的过程中,需要从另外一个位置进行操作的话,可以使用seek()

    seek(offset, from)有2个参数

    offset:偏移量

    from:方向

    0:表示文件开头

    1:表示当前位置

    2:表示文件末尾

    把位置设置为:从文件开头,偏移5个字节

    # 打开一个已经存在的文件

        f =open("test.txt", "r")

    str = f.read(30)

    print "读取的数据是 : ", str

    # 查找当前位置

        position = f.tell()

    print "当前文件位置 : ", position

    # 重新设置位置

        f.seek(5,0)

    # 查找当前位置

        position = f.tell()

    print "当前文件位置 : ", position

    f.close()

    把位置设置为:离文件末尾,3字节处

    # 打开一个已经存在的文件

        f =open("test.txt", "r")

    # 查找当前位置

        position = f.tell()

    print "当前文件位置 : ", position

    # 重新设置位置

        f.seek(-3,2)

    # 读取到的数据为:文件最后3个字节数据

        str = f.read()

    print "读取的数据是 : ", str

    f.close

    文件的备份,重命名,删除

    先演示下文件的重命名吧,使用os模块中的 rename()方法

    如:

    import os

    os.rename("旧文件","新文件")

    再看下删除

    rename()可以重命名,那我们用remove()来试一下能不能把文件给移除了

    impotent os  #注意:使用这两个方法的时候,一定要先引用下 os,因为这两个方法是是属于这个os模块的

    os.remove("待移除文件")

    最后,我们来看一下文件的备份。先理解下备份,备份其实就是将一个文件里面的数据复制下来,然后写道另一个文件中

    直接看下代码吧(要看着代码,自己手动敲一下,再执行看看。动手才是万能的)

    #coding=utf-8

    oldFileName =input("请输入要拷贝的文件名字:")

    oldFile =open(oldFileName,'r')

    # 如果打开文件

    if oldFile:

    # 提取文件的后缀

        fileFlagNum = oldFileName.rfind('.')

        if fileFlagNum >0:

            fileFlag = oldFileName[fileFlagNum:]

    # 组织新的文件名字

        newFileName = oldFileName[:fileFlagNum] +'[复件]' + fileFlag

    # 创建新文件

        newFile =open(newFileName, 'w')

    # 把旧文件中的数据,一行一行的进行复制到新文件中

        for lineContentin oldFile.readlines():

             newFile.write(lineContent)

    # 关闭文件

        oldFile.close()

        newFile.close()

    附录:

    文件夹的相关操作

    实际开发中,有时需要用程序的方式对文件夹进行一定的操作,比如创建、删除等

    就像对文件操作需要os模块一样,如果要操作文件夹,同样需要os模块

    1、创建文件夹

    importos   

    os.mkdir("张三")

    2、获取当前目录

    importos   

    os.getcwd()

    3、改变默认目录

    importos   

    os.chdir("../")

    4、获取目录列表

    importos   

    os.listdir("./")

    5、删除文件夹

    importos   

    os.rmdir("张三")

    相关文章

      网友评论

          本文标题:python基础●文件

          本文链接:https://www.haomeiwen.com/subject/qtigzqtx.html