Python读写txt文件: os.listdir()/os.path.join/list.append()/open()

本文介绍了如何使用Python的os和open模块实现文件夹的遍历以及txt文件的读写操作,包括使用os.listdir()获取文件路径,os.path.join拼接路径,以及open()函数进行文件内容读取和写入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python遍历文件夹、读写txt文件:

os.listdir()/os.path.join/list.append()/open()

Python可以处理的文件有txt、Excel、word、csv等,日常程序编码中,总需要读取相关的文档获取其中的数据,进而进行数据处理、数据分析等工作。

1.Python遍历文件夹下的所有文件

在这里需要引入Python的内置模块os来操作文件夹或文件,os模块提供了非常丰富的方法来处理文件和目录。

当文件夹下只有文件时(即文件夹下只有txt文件):使用os模块的listdir()方法

import os # 导入os模块
def get_filepaths(filebase):
    """遍历filebase路径下的所有文件名,返回一个包含所有文件的绝对路径列表"""
    filenames = os.listdir(filebase)
    paths = []
    for filename in filenames:
        paths.append(os.path.join(filebase,filename))
    return paths

if __name__ == '__main__':
    filebase = r'D\Python\txtfiles' # 这儿使用r''格式化路径字符串,避免因为\t报错
    output_paths = get_filepaths(filebase)
    print(output_paths)

下面是上面的代码中用到的方法的讲解:

'''用到的函数或方法:
(1)os.listdir(path):返回path指定的文件夹包含的文件或文件夹的名字的列表。
(2)os.path.join(path1,path2[,path3,...]):把目录和文件名合成一个路径
(3)list.append(obj):在列表末尾添加新的对象。注意与list.extend()区分
(4)list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
'''

代码演示——比如我的文件路径如下:
在这里插入图片描述

执行代码返回的结果如下:
在这里插入图片描述

2.Python读写txt文件的内容

这会使用到open()函数,python常用的读取文件的方法有三种:read()、readline()、readlines()

open()函数:open()是Python的一个内置函数,用于打开一个文件,创建一个file对象,相关的方法才可以对它进行读写。

语法:open(name[,mode[,buffering]]):

  • name: 一个包含了你要访问的文件名称的字符串值。可以是相对路径,也可以是绝对路径。
  • mode: mode 决定了打开文件的模式:只读(r),写入(w),追加(a)等。这个参数是非强制的,默认文件访问模式为只读(r)。
  • buffering:如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

常用的几种模式(mode):

  • r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
  • w :打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
  • a: 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

file对象方法:

  • f.read([size]):一次性读取txt文件中的全部内容,以字符串的形式返回文本内容。size 未指定则返回整个文件,如果文件大小 >2 倍内存则有问题,f.read()读到文件尾时返回""(空字串)。
  • f.readline():只读取txt文件中的第一行内容,以字符串的形式返回结果。
  • f.readlines([size]):一次性读取整个文件,以列表的形式返回结果,其中一行为列表的一个元素。
  • f.write():如果要写入字符串以外的数据,先将他转换为字符串。
  • f.close():关闭文件

open函数的模式:截图来自菜鸟教程
在这里插入图片描述

读取txt演示代码:

path = r'D:\Python\open_test.txt'  # path可以是绝对路径,也可以是相关路径(必须和代码所在同一个路径下)
list_data = []
with open(path,'r',encoding='utf-8') as file:
    lines = file.readlines()
    foor line in lines:
        list_data.append(line)
    file.close()
    print(list_data)

txt文档内容如下:在这里插入图片描述

输出结果如下:在这里插入图片描述

写入txt文件类似:

# 将list_data = ['天下难事\n', '必作于易\n', '天下大事\n', '必作于细']写入output.txt文件
list_data = ['天下难事\n', '必作于易\n', '天下大事\n', '必作于细']
with open('test_output.txt','a',encoding='utf-8') as file:
    for Str in list_data:
        file.write(Str)
    file.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值