python-03

news2024/10/6 12:32:28

使用File操作文件

open(file, mode='r', buffering=-1,encoding=None, errors=None, newline=None, closefd=True, opener=None)

file:要打开的文件

mode:文件打开模式。默认访问模式是读(r)

buffering:缓冲区大小

encoding:文件编码类型

errors:编码错误处理方法

newline:控制通用换行符模式的行为

closefd:控制在关闭文件时是否彻底关闭文件

opener:通过传递可调用对象opener,可以使用自定义开启器

r只读方式。文件指针放在文件开头。这是默认模式
rb二进制只读。指针在文件开头
r+读写。指针在文件开头
rb+二进制读写。指针在文件开头
w只写。该文件已存在则覆盖。不存在则创建
wb二进制只写。该文件已存在则覆盖。不存在则创建
w+读写。该文件已存在则覆盖。不存在则创建
wb+二进制读写。该文件已存在则覆盖。不存在则创建
a追加内容。该文件已存在则指针在文件的结尾。不存在则创建
ab二进制追加。该文件已存在则指针在文件的结尾。不存在则创建
a+读写。该文件已存在指针在文件的结尾。不存在则创建
ab+二进制读写。该文件已存在则指针在文件的结尾。不存在则创建

 file.closed:如果文件已被关闭返回True,否则返回False

file.mode:返回打开文件的访问模式

file.name:返回文件的名称

file.close()关闭文件

file.flush()

刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件
file.fileno()返回一个整形的文件描述符
file.isatty()如果文件连接到一个终端设备返回True,否则返回False
file.next()返回文件下一行
file.read([size])从文件读取指定的字节数,如果未给定或为负则读取所有内容
file.readline([size])读取整行,包括“\n”字符
file,readlines([sizeint])读取所有行并返回列表,若给定sizeint>0,返回总和大约为hint字节的行,实际读取值可能比sizeint大些
file.seek(offset[,whence])设置文件当前位置
file.tell()返回文件当前位置
file.truncate([size])截取文件,截取的字节通过size指定,默认为当前文件位置
file.write(str)将字符串写入文件,返回的是写入的字符长度
file.writelines(lines)向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符
fo = open('重要学习文件.txt',"wb")
print("文件名:",fo.name)
print("是否已关闭:",fo.closed)
print("访问模式:",fo.mode)

fileObject.closed():方法close用于关闭一个已经打开的文件,关闭后的文件不能再进行读写操作,否则会触发ValueError错误。在程序中可以多次调用close()方法,当File对象被引用到操作另外一个文件时,Python会自动关闭之前的File对象。

内置函数next()遍历文件中的下一行。

如果到达结尾(EOF),则触发StopIteration异常

next(iterator[, default])

fo = open('456.txt','r')
print('文件名为:',fo.name)
for index in range(4):
    line = next(fo)
    print("第%d行-%s"%(index, line))
fo.close()

file.read([size]):从目标文件中读取指定的字节数,如果没有给定字节数或参数为负,则读取所有内容。

fo = open("销售数据.txt",'r+')
print('文件名为:', fo.name)
line = fo.read(8)
print("读取的数据:%s"%(line))
fo.close()

使用OS对象

os.access(path, mode):检验对当前文件的操作权限模式。

path:是否有访问权限的路径

mode:测试当前路径的模式,以下4种

os.F_OK:测试path是否存在

os.R_OK:测试path是否可读

os.W_OK:测试path是否可写

os.X_OK:测试path是否可执行

import os,sys
ret = os.access(r"123\456.txt",os.F_OK)
print("F_OK - 返回值%s"% ret)
ret = os.access(r"123\456.txt", os.R_OK)
print("R_OK - 返回值%s"% ret)
ret = os.access(r"123\456.txt", os.W_OK)
print("W_OK -返回值%s"%ret)
ret = os.access(r"123\456.txt",os.X_OK)
print("X_OK - 返回值%s"%ret)

os.chdir(path):修改当前工作目录到指定的路径。

path:表示要切换到的新路径

返回值:允许修改则返回True,否则返回False

import os,sys
path = '123'
retval = os.getcwd()  # 获取当前文件的工作目录
print("学习资料的保存位置是:%s"%retval)
os.chdir(path)
retval = os.getcwd()
print("目录修改成功%s"%retval)

os.chmod(path, mode):修改文件或目录的操作权限

path:文件名路径或目录路径

mode:不同权限级别,文件权限以“用户id->组id->其他”的顺序进行检验

import os, stat
os.chmod("123\数据库下载地址.txt",stat.S_IXGRP) # 设置文件可以通过用户组执行
os.chmod("123\数据库下载地址.txt",stat.S_IWOTH) # 设置文件可以被其他用户写入
print("修改成功")

 os.open(file, flags[, mode]):打开一个文件,返回新打开文件的描述符

os.write(fd, str):写入字符串到文件描述符fd指向的文件中,返回实际写入的字符串长度。

fd:文件描述符

str:写入的字符串

os.closed(fd):关闭指定文件的描述符fd,没有返回值。

fd:文件描述符

import os
fd = os.open("收视率.txt",os.O_RDWR|os.O_CREAT)
str = "XX好声音的收视率是:2.271"
ret = os.write(fd, bytes(str,"UTF-8"))
print("写入的位数为: ")
print(ret)
print("写入成功")
os.close(fd)
print("关闭文件成功")

os.read(fn, n):从文件描述符fd指向的文件中读取最多n个字节的内容,返回含读取字节的字符串。文件描述符fd对应的文件已达到结尾时,返回一个空字符串。

import os
fd = os.open("财务预算计划.txt",os.O_RDWR) # 以读写方式打开文件
# 读取文件中的8个字符
ret = os.read(fd, 8)
print(ret)
os.close(fd)
print("关闭文件成功")

os.mkdir(path [, mode]):以数字权限模式创建目录,默认的模式为0777(八进制)。

返回值:返回包含读取字节的字符串。

path:表示要创建的目录

mode:表示要为目录设置的权限数字模式

os.makedirs(path, mode=0o777):递归创建目录。创建包含子目录的文件夹目录。

import os
path = "迅雷电影/2022/科幻"
os.makedirs(path)
print("路径被创建")

其他文件操作模块

import fileinput
def demo_fileinput():
    with fileinput.input(['123.txt', '456.txt']) as lines:
        for line in lines:
            print('总第%d行,'%fileinput.lineno(),'文件%s中第%d行:'%(fileinput.filename(),fileinput.filelineno()))
            print(line.strip())
if __name__ == "__main__":
    demo_fileinput()

 

fileinput内置方法:

input(): 返回能够用于迭代一个或多个文件中所有行的对象。

filename():返回当前文件的名称

lineno():返回当前读取的行的数量

isfirstline():返回当前行是否是文件的第一行

filelineno():返回当前读取行在文件中的行数

import os
filenames = []
for a,b,files in os.walk('test'):  # 获取当前目录‘test’中的所有文件
    if files:
        filenames.append([file[:-4] for file in files]) # 设置扩展名为3个字母
fname = 'Excel'
i = 0
for files in filenames:
    f = open(fname+str(i)+'.xls','w')
    for name in files:
        f.write(name[-4:]+'\t'+name[:4]+'\n')
    f.close()
    i += 1

 

有时需要提取多个文件的文件名,并且要求提取文件名的不同部分。此时可以使用for遍历整个目录中的内容,然后使用write()函数将文件名写入指定文件中。

通过方法os.walk()对test目录下的所有文件进行遍历,获取所有记事本的文件名字符串,并保存到列表filenames中,根据指定的电子表格文件名将文件名中的内容写入Excel文件。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1832922.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

淘宝商品评论API接口测试实例(获取淘宝商品评论,翻页展示、支持并发)

item_review-获得淘宝商品评论 测试页 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop…

学生党蓝牙耳机性价比排行榜,好评榜TOP5机型推荐

随着科技的飞速发展,蓝牙耳机已经成为我们日常生活中不可或缺的一部分,无论是运动健身、通勤路上还是休闲娱乐,它都为我们带来了极大的便利,然而,市面上的蓝牙耳机种类繁多,价格参差不齐,如何选…

pg——psql命令行交互式客户端工具

1、启动数据库 ./pg_ctl -D /usr/local/pgsql/data/ -l /usr/local/pgsql/log 2、登录数据库 psql template1 3、查看所有数据库 \l 4、创建数据库 create database testdb; 5、连接某数据库 \c 数据库 6、查看数据下的表 \d 7、 查看数据库下的所有schema \dn 8、查看表的结构…

业务表对应主键为varChar类型且无自增策略的新增与修改问题

业务表对应主键为varChar类型且无自增策略的新增与修改问题 上周五领到一个需求,在开发过程中遇到一点小插曲,在此记录下,话不多说,直接看表结构: 这里机构id为主键且无自增策略,也就是说机构id这个字段是…

PHP安装配置

文章目录 1.下载PHP2.配置环境变量3.Apache安装配置 1.下载PHP PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法…

Samba 服务器的搭建以及windows server 2008客户端的使用实验报告

一、 实验目的 通过 Samba 服务器的搭建,基本了解搭建服务器的基本步骤,理解 Samba 服务器的实现文件共享的功能,如何配置 Samba服务器配置文件等。 二、 实验环境 准备一台安装 centOS7系统的 Linux 虚拟机作为 Samba 服务器 server,准备…

海外仓系统有哪些?主流海外仓系统类型、优缺点,不同海外仓如何选择

作为海外仓的经营者,不管海外仓大小,你都应该知道海外仓系统对提升仓库管理效率有多重要。 不过现在市场上的海外仓系统确实种类太多了,想选到一个适合自己海外仓,性价比又比较高的wms海外仓系统也不是一件容易的事情。 本文会详…

GD32 MCU启动后如何运行到main函数

GD32 MCU启动后如何运行到main函数入口?你是否也有这样的疑虑。在执行到main函数之前MCU干了哪些事情呢?下面为大家解答。 MCMCU上电后,首先会根据BOOT0和BOOT1的状态判断从主Flash/SRAM/ISP中启动,如果BOOT0为低电平&#xff0c…

windows反弹shell的方法

什么是正向shell和反向shell 首先说,正向shell是控制端主动连接被控制端,通过目标主机开放一个监听端口等待其他主机访问,从而获得对目标主机的shell访问,优点是控制端可以整个控制目标主机,但缺点会受到防火墙的连&a…

多标签识别:JoyTag模型的图像标注革命【开源】

公共视觉模型通常会对其训练数据集进行严格过滤,这限制了这些基础模型在广泛概念上的表现,进而限制了表达自由、包容性和多样性。JoyTag通过结合Danbooru 2021数据集和一组手动标记的图像,努力提高模型对不同类型图像的泛化能力。 JoyTag项目…

简易版 | 代码生成器(包含插件)

一、代码生成器 先导入依赖 <!-- Mybatis-Plus --> <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.6</version> </dependency><!-- 代码生成器 --…

jvm必知必会-类的生命周期图文详解

类的生命周期描述了一个从加载、使用到卸载的过程; 而其中的 连接 部分又分为一下三个阶段: 验证准备解析6.1 加载阶段 Loading阶段第一步是 类加载器 会根据类全限定名通过不同的渠道以二进制流的方式获取字节码信息,程序员可以使用Java代码扩展不同的渠道。 比如通过 …

超强生图模型,抢先体验!

文生图模型Stable Diffusion 3 Medium开源啦&#xff01;优刻得GPU云主机目前已上线该模型镜像&#xff0c;开箱即用&#xff0c;即刻体验&#xff01;具体操作见文末。 近年来&#xff0c;生成式人工智能的快速发展正在改变我们的生活。作为这一领域的前沿技术之一&#xff0…

一个软件是如何开发出来的呢?

一、前言 如今&#xff0c;AI大爆发的时代&#xff0c;作为一名IT从业者&#xff0c;你是否也想尝试开发一套自己的系统&#xff0c;实现那些看似有可能实现的天马行空的想法&#xff0c;变成一个优秀甚至伟大的产品&#xff0c;甚至带来某个行业的革新&#xff0c;那作为一名…

rtthread stm32h743的使用(九)RT_WEAK报错

rtthread stm32h743的使用&#xff08;九&#xff09;RT_WEAK报错 我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验&#xff0c;核心板如图&#xff1a; 我们新建工程&#xff0c;参考前面rtthread stm32h…

springboot 腾讯地图接口验签 java

1. 原因 需求需要通过小程序定位拿到用户所在行政区信息,但是小程序定位只能拿到经纬度信息,所以需要调用腾讯地图的逆地址解析(我认为:微信是腾讯的,那么使用腾讯地图的逆地址解析经度应该不会损失太多)如果WebServiceAPI Key配置中签名校验,那么调用接口就需要进行验签 2. W…

YOLOv8 + SAM实现自动标注分割数据集【附完整源码+步骤详解】

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

eclipse maven打包报错: 致命错误: 在类路径或引导类路径中找不到程序包 java.lang的解决

还是上来帖张图&#xff1a; 1、系统之前是运行在mac上的&#xff0c;打包一切正常&#xff0c;但是现在在win11的eclipse打包就报错了。 2、致命错误: 在类路径或引导类路径中找不到程序包 java.lang&#xff0c;上面的问题应该是找不到java中的jar中的class导致。 解决&…

会声会影2023软件怎么下载安装? 【详细安装图文教程】

简介&#xff1a; 会声会影&#xff08;Corel VideoStudio&#xff09;为加拿大Corel公司发布的一款功能丰富的视频编辑软件。会声会影2023简单易用&#xff0c;具有史无前例的强大功能&#xff0c;拖放式标题、转场、覆叠和滤镜&#xff0c;色彩分级、动态分屏视频和新增强的…

小米充电宝怎么样?西圣、小米、罗马仕充电宝测评谁是卷王!

充电宝说实话在我们日常生活中还是非常常见的一个出门必备的充电设备&#xff0c;除了出门必须带数据线之外&#xff0c;充电宝也是不例外的&#xff0c;对于手机不耐电的朋友来说在外面有一个充电宝简直就是蓄电“救星”&#xff0c;什么都可以不带但是充电宝是必带的一款装备…