Python打开、读取和写入文件

打开、读取和写入文件

在Python中,我们可以使用内置的open()函数来打开文件。
open()函数的基本语法如下:
file = open(filename, mode)

其中,filename表示要打开的文件名,mode表示打开文件的模式。
mode参数可以是以下字符串之一:

'r':只读模式,打开文件后只能读取文件内容,不能修改。
'w':写入模式,打开文件后可以覆盖或创建新的文件。
'a':追加模式,打开文件后可以在文件末尾添加内容。
'x':独占模式,创建一个新文件,如果文件已经存在,则抛出FileExistsError异常。
除了这些基本模式之外,还可以使用以下模式:

'b':二进制模式,用于处理二进制文件(如图片、视频等)。
't':文本模式,用于处理文本文件(默认值)。
下面是一个示例,打开文件test.txt并读取其内容:
# 打开文件并读取其内容
with open("test.txt", "r") as f:
    content = f.read()
    print(content)
在上面的代码中,我们使用with语句来打开文件,这样可以自动关闭文件并释放资源。read()方法用于读取文件的全部内容,返回一个字符串对象。

如果我们想一次读取一行内容,可以使用readline()方法。

例如:
# 打开文件并逐行读取其内容
with open("test.txt", "r") as f:
    line = f.readline()
    while line:
        print(line.strip())  # 去掉行末的换行符
        line = f.readline()
在上面的代码中,我们使用readline()方法逐行读取文件的内容,并使用strip()方法去掉行末的换行符。

如果我们想一次读取所有行的内容,可以使用readlines()方法。

例如:
# 打开文件并读取所有行的内容
with open("test.txt", "r") as f:
    lines = f.readlines()
    for line in lines:
        print(line.strip())  # 去掉行末的换行符
在上面的代码中,我们使用readlines()方法一次性读取所有行的内容,并使用strip()方法去掉行末的换行符。

如果我们想向文件中写入内容,可以使用write()方法。

例如:
# 打开文件并向其中写入内容
with open("test.txt", "w") as f:
    f.write("Hello, world!\n")
    f.write("This is a test file.\n")
在上面的代码中,我们使用write()方法向文件中写入两行内容,每行末尾都要加上换行符。注意,使用write()方法向文件中写入内容时,如果文件已经存在,会将原有内容覆盖。

如果我们想在文件末尾添加内容,可以使用a模式打开文件,并使用write()方法写入内容。

例如:
# 打开文件并向其中追加内容
with open("test.txt", "a") as f:
    f.write("This is additional content.\n")
在上面的代码中,我们使用a模式打开文件,并使用write()方法向文件末尾添加一行内容。

最后,当我们使用open()函数打开文件后,一定要记得在处理完文件后关闭文件,以释放资源。可以使用close()方法关闭文件。例如:
# 打开文件并关闭
f = open("test.txt", "r")
content = f.read()
print(content)
f.close()
在上面的代码中,我们使用open()函数打开文件,使用read()方法读取文件内容,最后使用close()方法关闭文件。

然而,使用close()方法需要我们手动处理异常和资源管理,如果不小心忘记关闭文件,可能会导致资源泄漏和程序崩溃。因此,更好的方式是使用with语句,自动管理资源。例如:
# 使用with语句打开文件
with open("test.txt", "r") as f:
    content = f.read()
    print(content)
在上面的代码中,我们使用with语句打开文件,并使用read()方法读取文件内容,最后在with块结束时自动关闭文件。这种方式可以避免忘记关闭文件和处理异常等问题,是更安全和方便的方式。

除了读取和写入文件,我们还可以使用Python内置的os模块执行文件和目录的操作,例如创建、重命名、删除文件和目录等。

下面是一些常见的操作:

创建目录:使用os.mkdir()函数可以创建目录。

例如:os.mkdir("mydir")可以创建一个名为mydir的目录。

删除目录:使用os.rmdir()函数可以删除目录。

例如:os.rmdir("mydir")可以删除名为mydir的目录。请注意,目录必须为空才能删除。

重命名文件或目录:使用os.rename()函数可以重命名文件或目录。

例如:os.rename("oldname", "newname")可以将名为oldname的文件或目录重命名为newname。

删除文件:使用os.remove()函数可以删除文件。

例如:os.remove("myfile.txt")可以删除名为myfile.txt的文件。

检查文件或目录是否存在:使用os.path.exists()函数可以检查文件或目录是否存在。

例如:os.path.exists("myfile.txt")可以检查名为myfile.txt的文件是否存在。

下面是一些示例代码:
import os

# 创建目录
os.mkdir("mydir")

# 重命名文件或目录
os.rename("oldname", "newname")

# 删除文件
os.remove("myfile.txt")

# 检查文件或目录是否存在
if os.path.exists("myfile.txt"):
    print("myfile.txt exists")
else:
    print("myfile.txt does not exist")
需要注意的是,这些操作都是对底层操作系统的调用,因此可能会受到操作系统的限制和权限问题。

为了安全起见,在执行这些操作之前,最好先检查文件或目录是否存在,并在操作之后进行必要的错误处理。


 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中年老码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值