zoukankan      html  css  js  c++  java
  • python IO流操作

    python IO流操作

    学习完本篇,你将会独立完成

    • 实现操作系统中文件及文件目录的拷贝功能。
    • 将目标图片拷贝到指定的目录中
    • 实现一个自动阅卷程序, Right.txt保存正确答案,xx(学生姓名).txt代表学生答案。阅卷程序完成阅卷并按照成绩的高低保存到 成绩.txt文件中(格式为 xx(学生姓名):xx分)

    输出

    • 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式。此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下:
    print  “hello”,”world” #注意“,”打印时是空格
    print  “number:”,3
    print  “number:%d” %3 
    print  “number:%d” %(3)
    print  “number:%d,%d” %(3,6)
    

    输入

    • Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘:
      1.input([prompt])
      2.raw_input([prompt])
    • input输入数字返回结果,raw_iput输入字符串返回结果,input接受输入表达式
    #!/usr/bin/python 
    # -*- coding: UTF-8 -*- 
    str = raw_input("请输入:"); 
    print "你输入的内容是: ", str
    
    #!/usr/bin/python # 
    -*- coding: UTF-8 -*- 
    str = input("请输入:"); 
    print "你输入的内容是: ", str  
    

    文件操作

    打开文件

    • Python 提供了必要的函数和方法进行默认情况下的文件基本操作。你可以用 file 对象做大部分的文件操作。:
      1.open 函数
      Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写
      file object = open(file_name [, access_mode][, buffering])
      各个参数的细节如下:
      1.file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。
      2.access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。
      所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式
      为只读(r)。
      3.buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,
      访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的
      寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

    文件访问模式表

    模式 描述
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
    w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
    w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

    file对象的属性

    • 一个文件被打开后,会返回一个file对象,可以通过file对象得到有关该文件的各种信息。
      以下是列表中是文件的各种操作:
    模式 描述
    file.closed 返回true如果文件已被关闭,否则返回false。
    file.mode 返回被打开文件的访问模式。
    file.name 返回文件的名称。
    file.softspace 如果用print输出后,必须跟一个空格符,则返回false。否则返回true.
    # -*- coding: UTF-8 -*- 
    fo = open("foo.txt", "wb") # 打开一个文件 
    print "文件名: ", fo.name
     print "是否已关闭 : ", fo.closed 
    print "访问模式 : ", fo.mode 
    print "末尾是否强制加空格 : ", fo.softspace 
    
    打印结果:
    文件名: foo.txt 
    是否已关闭 : False 
    访问模式 : wb 
    末尾是否强制加空格 : 0 
    

    close方法

    • File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。
    • 当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯。
    • 语法:fileObject.close();
    # -*- coding: UTF-8 -*- 
    fo = open("foo.txt", "wb") # 打开一个文件 
    print "文件名: ", fo.name
    
    #关闭打开文件
    fo.close()
    
    打印结果:
    文件名: foo.txt 
    

    write方法

    • write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
    • write()方法不会在字符串的结尾添加换行符(' '):
    • 语法:fileObject.write(string);
    # -*- coding: gbk-*- 
    fo = open("foo.txt", "wb") # 打开一个文件 
    print "文件名: ", fo.name
    fo.write( “这是我编写第一个打开文件成程序
    ");
    
    #关闭打开文件
    fo.close()
    
    打印结果:
    文件名: foo.txt 
    

    read()方法

    • read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

    • 语法: fileObject.read([count]);
      说明:被传递的参数是要从已打开文件中读取的字节计数。该方法从文件的开头开始读入,如果没有传入count,它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾。

    # -*- coding: gbk-*- 
    fo = open("foo.txt", " r+ ") # 打开一个文件 
    str = fo.read(10); 
    print "读取的字符串是 : ", str
    #关闭打开文件
    fo.close()
    

    文件重命名

    • Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。
    • rename()方法:
      rename()方法需要两个参数,当前的文件名和新文件名
    • 语法:os.rename(current_file_name, new_file_name)
    #!/usr/bin/python 
    # -*- coding: UTF-8 -*- 
    import os 
    # 重命名文件test1.txt到test2.txt。 
    os.rename( "test1.txt", "test2.txt" )
    

    remove方法

    • remove()方法删除文件,需要提供要删除的文件名作为参数。
    • 语法: os.remove(file_name)
    #!/usr/bin/python 
    # -*- coding: UTF-8 -*- 
    import os 
    # 删除一个已经存在的文件test2.txt 
    os.remove("test2.txt")
    

    mkdir()方法

    • 使用os模块的mkdir()方法在当前目录下创建新的目录们。需要提供一个包含了要创建的目录名称的参数。
    • 语法: os.mkdir("newdir")
    #!/usr/bin/python 
    # -*- coding: UTF-8 -*- 
    import os 
    # 创建一个文件test2.txt 
    os.mkdir("test2.txt")
    

    chdir()方法

    • chdir()方法来改变当前的目录。chdir()方法需要的一个参数是你想设成当前目录的目录名称。
      语法: os.chdir("newdir")
    • getcwd()方法显示当前的工作目录。
      语法: os.getcwd()
    #!/usr/bin/python 
    # -*- coding: UTF-8 -*- 
    import os 
    # 将当前目录改为“C:/" 
    os.chdir("C:/")
    # 给出当前的目录 
    print os.getcwd()
    

    rmdir()方法

    • rmdir()方法删除目录,目录名称以参数传递。
    • 在删除这个目录之前,它的所有内容应该先被清除。
      语法: os.rmdir('dirname')
    #!/usr/bin/python 
    # -*- coding: UTF-8 -*- 
    import os 
    # 删除”/tmp/test”目录 
    os.rmdir( "/tmp/test" )
    

    File(文件) 方法

    序号 描述
    file.close() 关闭文件。关闭后文件不能再进行读写操作。
    file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
    file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
    file.isatty() 如果文件连接到一个终端设备返回 True,否则返回 False。
    file.next() 返回文件下一行。
    file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。
    file.readline([size]) 读取整行,包括 " " 字符。
    file.readlines([sizehint]) 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比sizhint较大, 因为需要填充缓冲区。
    file.seek(offset[, whence]) 设置文件当前位置
    file.tell() 返回文件当前位置。
    file.truncate([size]) 截取文件,截取的字节通过size指定,默认为当前文件位置。
    file.write(str) 将字符串写入文件,没有返回值。
    file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
    测试
  • 相关阅读:
    85. Maximal Rectangle
    120. Triangle
    72. Edit Distance
    39. Combination Sum
    44. Wildcard Matching
    138. Copy List with Random Pointer
    91. Decode Ways
    142. Linked List Cycle II
    异或的性质及应用
    64. Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/package/p/15315356.html
Copyright © 2011-2022 走看看