python 文件操作

本文深入探讨了Python中文件操作的基本技巧,包括如何使用os模块进行文件路径拼接,以及如何通过with语句正确打开和关闭文件。同时,文章还解释了文件指针的工作原理,并提供了解决多次遍历文件时指针位置问题的方法。

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

一、文件的目录

import os
base_dir = 'F:\python\\text-image\\text'
dir1 = 'train'

注意以下两个语句的区别:

a = open(os.path.join(base_dir,dir1) + dir1 + '.txt')
# 会在F:\python\\text-image\\text目录下新建一个文件名为traintrain.txt的txt文件。

a = open(os.path.join(base_dir,dir1) + '\\' + dir1 + '.txt')
# 会在F:\python\text-image\text\train目录下新建一个文件名为train.txt的txt文件。

二、打开与关闭文件句柄的操作

with open('F:\python\\text-image\\text\trip.txt', encoding='utf-8') as dir1_obj:
    print(len(dir1_obj.readlines()))
    # 可以正确获得文件行数
    print(len(dir1_obj.readlines()))
    # 显示文件行数为0



with open('F:\python\\text-image\\text\\trip.txt', encoding='utf-8') as dir1_obj:
    print(len(dir1_obj.readlines()))
    # 可以正确获得文件行数
    dir1_obj.close()
    dir1_obj = open('F:\python\\text-image\\text\\trip.txt', encoding='utf-8')
    print(len(dir1_obj.readlines()))
    # 可以正确获得文件行数

第一种情况出现的原因是第一次输出文件的行数时,文件对象指针会遍历整个文件,所以,此时,指针在文件末尾,当第二次想再输出文件的行数时,指针在末尾,读不到数据了,显然,就会输出0。第二种情况两次都能正确输出文件的行数,显而易见,重新打开文件,指针肯定又回到了文件开头。

其实,想对一个打开的文件多次遍历,不需要这么麻烦,不需要多次打开,关闭。下面语句可以让指针重新回到文件开头。

with open('F:\python\\text-image\\text\\trip.txt', encoding='utf-8') as dir1_obj:
    print(len(dir1_obj.readlines()))
    # 可以正确获得文件行数
    dir1_obj.seek(0)
    # 指针回到文件开头
    print(len(dir1_obj.readlines()))
    # 可以正确获得文件行数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值