Python文件操作

Python文件操作

  1. 终端输入输出

  2. 打开和关闭文件

  3. close()方法

  4. write()方法

  5. read(方法

  6. seek()方法

  7. 重命名和删除文件

  8. python里的目录

  9. chdir()方法

  10. getcwd()方法

  11. rmdir()方法

  12. 文件目录相关的方法

  13. Linux和window平的差异性

  14. 终端输入输出

读取键盘输入

  • raw _input
  • input
    raw_input([prompt])、input([prompt]):
    函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符)(python3已经将raw_input([prompt])其去掉)

在这里插入图片描述
打印到屏幕:
最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式。此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下:
在这里插入图片描述

  1. 打开和关闭文件

现在已经可以正常输入输出,那么怎么样读写实际的数据文件?

在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)

Python 提供了必要的函数和方法进行默认情况下的文件基本操作。
你可以用 file 对象做大部分的文件操作。

open()函数
打开一个文件,创建一个file对象
在这里插入图片描述

**读文件

代码:

f = open(r"C:\Users\hya\Desktop\新建文本文档 (2).txt", "r")
print(f.read())
f.close()
  • 在Python中\是转义符,\u表示其后是UNICODE编码,因此\User在这里会报错,在字符串前面加个r表示就可以了
    标示符’r’表示读,这样,我们就成功地打开了一个文件。
  • 如果文件不存在,open()函数就会抛在这里插入代码片出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在
  • 如果文件打开成功,接下来,调用read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示
  • 最后一步是调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的

    由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally来实现:
try:
    f = open(r"C:\Users\hya\Desktop\新建文本文档 (2).txt", "r")
    print(f.read())
finally:
    if f:
        f.close()

但是每次都这么写实在太繁琐,所以,Python引入了with语句来自动帮我们调用close()方法:

with open(r"C:\Users\hya\Desktop\新建文本文档 (2).txt", "r") as f:
    print(f.read())

这和前面的try … finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。
如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便

   f=open(r"C:\Users\hya\Desktop\新建文本文档 (2).txt", "r")
    for line in f.readlines():
        print(line.strip())  # 把末尾的'\n'删掉
  1. close()方法

File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。

当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯。

下面来看看如何使用read()和write()方法来读取和写入文件。

  1. write()方法

write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
write()方法不会在字符串的结尾添加换行符(’\n’):
语法:
fileObject.write(string)
在这里,被传递的参数是要写入到已打开文件的内容。

覆盖 以’w’模式写入文件时,如果文件已存在,会直接覆盖(相当于删掉后新写入一个文件)

   f = open(r"C:\Users\hya\Desktop\新建文本文档 (2).txt", "w")
    f.write("this is new neirong")
    f.close()

追加 如果我们希望追加到文件末尾怎么办?可以传入’a’以追加(append)模式写入。
f = open(r"C:\Users\hya\Desktop\新建文本文档 (2).txt", “a”)
f.write(“this is new neirong”)
f.close()

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

语法:

fileObject.read([count])
在这里,被传递的参数是要从已打开文件中读取的字节计数。该方法从文件的开头开始读入,如果没有传入count,它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾。
f = open(r"C:\Users\hya\Desktop\新建文本文档 (2).txt", “r”)
print(f.read(10))
f.close()

  1. seek()方法
    文件定位
    tell()方法告诉你文件内的当前位置, 换句话说,下一次的读写会发生在文件开头这么多字节之后。

seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。

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

例子:

f = open(r"C:\Users\hya\Desktop\新建文本文档 (2).txt", "r+")
str = f.read(10)
print("读取的字符串是 : ", str)

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

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

Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。

要使用这个模块,你必须先导入它,然后才可以调用相关的各种功能。

rename()方法:

rename()方法需要两个参数,当前的文件名和新文件名。

语法:

os.rename(current_file_name, new_file_name)
例子:

下例将重命名一个已经存在的文件test1.txt。

import os

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

  1. python里的目录

所有文件都包含在各个不同的目录下,不过Python也能轻松处理。os模块有许多方法能帮你创建,删除和更改目录。

mkdir()方法

可以使用os模块的mkdir()方法在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数。
语法:
os.mkdir(“newdir”)
例子:

下例将在当前目录下创建一个新目录test。
import os
#创建目录test
os.mkdir(“test”)

  1. chdir()方法

可以用chdir()方法来改变当前的目录。chdir()方法需要的一个参数是你想设成当前目录的目录名称。

语法:

os.chdir(“newdir”)
import os

#将当前目录改为"/home/newdir"
os.chdir("/home/newdir")

10.getcwd()方法:

getcwd()方法显示当前的工作目录。

语法:

os.getcwd()
例子:

下例给出当前目录:
import os

#给出当前的目录
print os.getcwd()

11.rmdir()方法

rmdir()方法删除目录,目录名称以参数传递。

在删除这个目录之前,它的所有内容应该先被清除。

语法:

os.rmdir(‘dirname’)
例子:

以下是删除" /tmp/test"目录的例子。目录的完全合规的名称必须被给出,否则会在当前目录下搜索该目录。
import os
#删除”/tmp/test”目录
os.rmdir( “/tmp/test” )
文件、目录相关的方法
File 对象和 OS 对象提供了很多文件与目录的操作方法,可以通过点击下面链接查看详情:

File 对象方法: file 对象提供了操作文件的一系列方法。
OS 对象方法: 提供了处理文件及目录的一系列方法。

  1. 文件目录相关的方法
  2. Linux和window平的差异性
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值