Python文件I/O

Python文件I/O

一、读取键盘输入

python两个标准输入的内置函数:

  • raw_input
  • input

1. raw_input

raw_input([prompt])函数从标准输入读取一行,并返回一个字符串(去掉结尾的换行符)
例:

str = raw_input('请输入:')
print('你输入的内容是:  ', str)
请输入:Hello Python!
你输入的内容是:  Hello Python!

2. input函数

input([prompt]) 函数和 raw_input([prompt]) 函数基本类似,但是 input 可以接收一个Python表达式作为输入,并将运算结果返回
例:

str = input('请输入:')
print('你输入的内容是:  ', str)
请输入:[x*5 for x in range(2,10,2)]
你输入的内容是:  [10, 20, 30, 40]

二、打开和关闭文件

1. open函数

先使用python内置的open(函数)打开一个文件,创建一个file对象,相关的方法可以调用她进行读写
语法:

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

参数详情:

  • file_name: file_name变量是一个包含了你要访问的文件名称的字符串值
  • access_mode:access_mode决定了打开文件的模式:只读写入追加等,默认文件访问方式为只读(r)
  • buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

access_mode打开文件方式:

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

打开方式模式总结:
读取模式图

模式rr+ww+aa+
++++
+++++
创建++++
覆盖++
指针在开始++++
指针在结尾++

file对象属性

属性列表:

属性描述
file.closed如果文件已被关闭,返回True否则返回False
file.mode返回被打开文件的访问模式
file.name返回文件名称
file.softspace布尔值,只是文件在使用print()语句时,是否应该在一个值之前法印空格字符。模仿文件的类必须提供该名称的一个可写属性,该属性初始值为0(仅在Python2中使用)
file.encoding一个字符串,致死文件编码(如果存在)(例如:latin-1utf-8等)。如果没有使用任何编码,该值为None
file.newlines在通用换行符模式下打开一个文件时,该属性包含可在文件这中实际找到的换行符表示。如果没有遇到换行符,该值为None,将会看到一个包含\n\r\r\n 的字符串,或者一个包含所有不同换行符编码元组

close()方法

File对象的close()方法刷新缓冲区里任何还没有写入的信息,并关闭该文件,指着后便不能再进行写入。
当一个文件对象的引用内重新指定给另一个文件时,Python会关闭之前的文件。
例:

# 打开一个文件
fo = open("foo.txt", "w")
print "文件名: ", fo.name

# 关闭打开的文件
fo.close()

输出结果:

文件名:  foo.txt

write()方法

write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字

write()方法不会在字符串的结尾添加换行符(\n)

read()方法

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


#这里我们用到以上创建的 foo.txt 文件
# 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10)
print "读取的字符串是 : ", str
# 关闭打开的文件
fo.close()

文件定位

tell()方法告诉你文件内的当前位置, 也就是,下一次的读写会发生在文件开头这么多字节之后。
seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。

如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。

# 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10)
print "读取的字符串是 : ", str

# 查找当前位置
position = fo.tell()
print "当前文件位置 : ", position

# 把指针再次重新定位到文件开头
position = fo.seek(0, 0)
str = fo.read(10)
print "重新读取字符串 : ", str
# 关闭打开的文件
fo.close()

重命名和删除文件

  • Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。
  • 要使用这个模块,你必须先导入它,然后才可以调用相关的各种功能。
  • rename()方法:
  • rename()方法需要两个参数,当前的文件名和新文件名。

语法:

os.rename(current_file_name, new_file_name)

例:

import os

# 重命名文件test1.txt到test2.txt。
os.rename( "test1.txt", "test2.txt" )

remove()方法

可以用remove()方法删除文件,需要提供要删除的文件名作为参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值