参考资料:

  1. 《Python基础教程》

  2. http://www.runoob.com/python/python-files-io.html

  ▶ 键盘输入

  注意raw_input函数和input函数的区别。

  raw_input函数使用实例:

#!/usr/bin/python

str = raw_input("Input your string: ");
print "This is your input string: ", str

  input函数使用实例:

#!/usr/bin/python

str = input("Input your string: ");
print "This is your input string : ", str

  ▶ 打开和关闭文件

  open函数用于打开一个文件,创建一个file对象。

  语法如下:

file object = open(file_name [, access_mode][, buffering])

  其中,access_mode的完全列表如下:

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

  关于buffering,如果其值为0,不会有寄存。如果为1,会寄存。其它大于1的值,表示缓冲区的大小。负值,则寄存区的缓冲大小为系统默认。

▶ File对象

  file对象相关的属性列表如下:

属性 描述
file.closed 返回true如果文件已被关闭,否则返回false。
file.mode 返回被打开文件的访问模式。
file.name 返回文件的名称。
file.softspace 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。

  

  写文件实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
test = open("/test/test.txt", "wb")
test.write( "This is a test.\nThanks!\n"); fo.close()

  

  读文件实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*- # 打开文件
test = open("/test/test.txt", "r+")
str = test.read(10);
print "The string is : ", str # 查找当前位置
position = test.tell();
print "Current file position : ", position # 重定位指针到文件开头
position = test.seek(0, 0);
str = test.read(10);
print "The string is : ", str
# 关闭打开的文件
fo.close()

  重命名文件实例(重命名test1.txt为test2.txt):

#!/usr/bin/python
# -*- coding: UTF-8 -*- import os # 重命名文件test1.txt为test2.txt。
os.rename( "test1.txt", "test2.txt" )

  

  删除文件实例(删除刚才的test2.txt):

#!/usr/bin/python
# -*- coding: UTF-8 -*- import os # 删除文件test2.txt
os.remove("text2.txt")

  ▶ 目录

  创建目录实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*- import os # 创建目录test
os.mkdir("test")

  改变当前目录(类同cd命令):

#!/usr/bin/python
# -*- coding: UTF-8 -*- import os # 将当前目录改为"/home/test2"
os.chdir("/home/test2")

  

  得到当前工作目录实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*- import os # 获取当前工作目录
str = os.getcwd()

  删除目录实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*- import os # 删除”/home/x-man/test”目录
os.rmdir("/home/x-man/test")

Python基础学习笔记(十二)文件I/O的更多相关文章

  1. Python基础学习笔记(二)变量类型

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://w ...

  2. python 学习笔记(十二) 文件和序列化

    python 文件读写和序列化学习.## python文件读写`1 打开并且读取文件` f = open('openfile.txt','r') print(f.read()) f.close() ` ...

  3. Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

  4. python基础学习(十二)

    模块 前面有简单介绍如何使用import从外部模块获取函数并且为自己的程序所用: >>> import math >>> math.sin(0) #sin为正弦函数 ...

  5. JavaBean(web基础学习笔记十二)

    一.JavaBean简介 JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁.JSP搭配JavaBean来使用 ...

  6. 【Python】学习笔记十二:模块

    模块(module) 在Python中,一个.py文件就是一个模块.通过模块,你可以调用其它文件中的程序 引入模块 先写一个first.py文件,内容如下: def letter(): print(' ...

  7. python基础学习(十二)变量进阶

    目录 1. 变量的引用 1.1 引用的概念 1.2 变量引用 的实例 1.3 函数的参数和返回值的传递 2. 可变和不可变类型 哈希 (hash) 3. 局部变量和全局变量 3.1 局部变量 3.2 ...

  8. python基础学习笔记(二)

    继续第一篇的内容,讲解,python的一些基本的东西. 注释 为了让别人能够更容易理解程序,使用注释是非常有效的,即使是自己回头再看旧代码也是一样. >>> #获得用户名: > ...

  9. python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL

    python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...

  10. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

随机推荐

  1. JeeSite开发笔记

    开发流程笔记: http://m.blog.csdn.net/article/details?id=51251619

  2. JS和CSS的多浏览器兼容(2)

    2.Css的浏览器兼容性 方法一,根据不同的浏览器加载不同的css file <!DOCTYPE html>  <html> <head> <title> ...

  3. [转]ConsumeContainerWhitespace property to remove blank space in SSRS 2008 report

    转自:http://beyondrelational.com/modules/2/blogs/115/posts/11153/consumecontainerwhitespace-property-t ...

  4. 自定义Exception

    本文改编自http://blog.csdn.net/stellaah/article/details/6738424 [总结] 1.自定义异常: class 异常类名 extends Exceptio ...

  5. Hibernate API申明事务边界

    在Hibernate API中,Session和Transaction接口提供了以下声明事务边界的方法: 声明事务的开始边界: Transaction tx = session.beginTransa ...

  6. org.hibernate.PropertyNotFoundException:could not find a getter for name in class ....

    Hibernate创建持久化类须符合JavaBean的规范,"get","set"后面紧跟属性的名字,并且属性名的首字母为大写.如果不遵守这个规则,Hibern ...

  7. 使用pt-heartbeat检测主从复制延迟

    不要用SECONDS_BEHIND_MASTER来衡量MYSQL主备的延迟时间,原因如下: A:备库Seconds_behand_master值是通过将服务器当前的时间戳与二进制日志中的事件的时间戳对 ...

  8. python: 字符串按空格分成列表split与加密密码maketrans

    #字符串按空格分成列表split() print("fu li mei".split()) #split按空格分成列表 print("1+a+2+b".spli ...

  9. SQL游标应用

    自己整了半天才弄好,写成博客纪念下: 这个是sql上写的测试用: ) ) ) ) declare @sql varchar(max) set @sql='' SET @type='index_02' ...

  10. android 实现橡皮擦效果以及保存涂鸦的功能

    实现涂鸦.擦除.保存的功能 设置画笔为橡皮擦功能 paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); 如果你的画出来的是 ...