Python 学习之文件/IO篇

Python 学习之文件/IO篇

控制台输入和输出

输出

类似C,Python中最简单的控制台输出函数是print

#!/usr/bin/python
# coding=utf-8

print "python 是世界上最牛皮的语言"

结果

python 是世界上最牛皮的语言

输入

  • raw_input
  • input
    python提供了两个用于键盘输入的函数,它们都是从标准输入读取一个行,并去掉换行符。不一样的是后者可以接受一个python表达式的输入
#!/usr/bin/python
# coding=utf-8

raw_input_str = raw_input("raw_input请输入:")
print "你输入的内容是: ", raw_input_str

input_str = input("input请输入:")
print "你输入的内容是: ", input_str

结果

raw_input请输入:1111
你输入的内容是:  1111
input请输入:[x for x in range(1,10,2)]
你输入的内容是:  [1, 3, 5, 7, 9]

打开和关闭文件

与java类似,python提供了file对象,可进行大部分的文件操作。

创建一个file对象

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

file_name:
需要读写的文件名字符串,可包含路径。例如:

/home/zjs/workspace/test.txt

access_mode:
打开文件的模式:只读,写入,追加等,这个参数是非强制的,默认文件访问模式为只读(r)。

模式描述
t文本模式 (默认)。
x写模式,新建一个文件,如果该文件已存在则会报错。
b二进制模式。
+打开一个文件进行更新(可读可写)。
U通用换行模式(不推荐)。
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

buffering:
如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。如果不填写,默认不寄存。

例子:

fo = open("/home/zjs/workspace/test.txt", "w", 1)
#以写入模式打开test.txt文件,缓存区以行寄存。

文件操作

通过具体的代码可以更容易的记忆这些操作。

文件读写操作
#!/usr/bin/python
# coding=utf-8

# 以可读写模式打开test.txt,如果test.txt存在则在末尾附加编辑,如果不存在则创建.
fo =  open("/home/zjs/Documents/myNote/pythonNote/test_demo1/test.txt", "a+", 0)
fo.write("我是一个测试文件qqq\n") #在文件末尾写入字符串
position = fo.tell()  # 获取指针位置
print "当前文件位置 :%s "% position
fo.seek(0, 0) #将指针指向文件头
str = fo.read() #读取文件中的字符串
fo.close()
print "输入的内容为: %s" % str
print "文件名:%s" % fo.name
print "是否已关闭 %s: " % fo.closed
print "访问模式 : %s" % fo.mode
print "末尾是否强制加空格 %s: " % fo.softspace
文件重命名/删除

Python的os模块提供了重命名和删除文件的操作,但是使用这个模块需要导包。

# !/usr/bin/python
# coding=utf-8

import os

# 重命名文件test.txt到test1.txt。
os.rename("/home/zjs/Documents/myNote/pythonNote/test_demo1/test.txt", "/home/zjs/Documents/myNote/pythonNote/test_demo1/test1.txt")

# 删除一个已经存在的文件test1.txt
os.remove("/home/zjs/Documents/myNote/pythonNote/test_demo1/test1.txt")

# 创建一个文件夹
os.mkdir("/home/zjs/Documents/myNote/pythonNote/test_demo1/test")

# 进入test目录
os.chdir("/home/zjs/Documents/myNote/pythonNote/test_demo1/test")

# 显示当前的工作目录
print os.getcwd()

# 删除目录
os.chdir("/home/zjs/Documents/myNote/pythonNote/test_demo1")
os.rmdir("/home/zjs/Documents/myNote/pythonNote/test_demo1/test")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值