python读取文件名称(python里读取文件的内容代码)
Python 拿来直接用的7个os读写文件的操作!网友:建议收藏!
在学习真实案例之前,我们先来了解一下Python文件操作的一些基本概念~~
如何创建读取和写出的文件对象,open()方法来搞定
他有两个参数,第一个就是读取的文件名称,第二个是可选的,指的是打开文件的模式,默认是读取文件。
当我们获取到读取文件对象fin之后我们就可以读取文件内容了,这里介绍两种方式。
第一种是直接读取文件内容,
第二种是按行读取文件内容。
区别在于如果你的文件非常大,如果直接读取效率会非常低下,甚至会撑爆内存。
所以按行读取按行处理就不会因为文件过大而产生问题了
文件读取完成之后写出文件有如下方式:
'\n'的意思是我们手动换行
最后关闭文件有两种方式
为什么要关闭文件呢?
如果不关闭他就会持续打开状态,琐事其他进程后者线程要操作它的时候就会报错
我们有时候写入非常大的数据的时候打开文件后会发现数据不是最新的?
这是因为python在写出文件是先写到内存中,等到一定的事件之后或者文件到达一定的数量之后才会写入到磁盘
所以我们如果想要看最新的数据,可直接调用如下方法
接下来我们使用数据进行测试
1. 文件读操作
文件读、写操作比较常见。读取文件,要先判断文件是否存在。
若文件存在,再读取;不存在,抛出文件不存在异常。
文件存在情况:
文件不存在情况:
open 后,务必要 close,这种写法有些繁琐,还容易出错。借助 with 语法,同时实现 open 和 close 功能,这是更常用的方法。
2.获取文件的后缀名
如何优雅地获取文件后缀名?os.path 模块,splitext 能够优雅地提取文件后缀。
3. 批量修改文件后缀名
修改之前
修改文件后缀名的文件方法如下:
从修改之后:
4. 获取文件名
有时拿到一个文件名时,名字带有路径。这时,使用 os.path、split 方法实现路径和文件的分离。
我们还可以直接使用使用os.path 模块,splitext 提取文件后缀名。
5.获取以指定后缀结尾的文件
当我们想要查询某路径下所有以固定后缀结尾的文件时,可以使用如下方法
6.?批量修改文件后缀名
后缀名批量修改,实现思路:
1. 遍历目录下的所有文件
2. 获取文件的后缀名
3. 如果后缀名命中为 old_ext,rename 重命名
defbatch_rename(work_dir,?old_ext,?new_ext):
"""
传递当前目录,原来后缀名,新的后缀名后,批量重命名后缀
7. 批量获取文件修改时间
os.walk 生成文件树结构,os.path.getmtime 返回文件的最后一次修改时间:
python对文本文件的读有哪些方法,写有哪些方法?
1 文件读取全文本操作
在一定场景下我们需要把文本全部内容读取出来,进行处理。python提供三种函数读取文件,分别是read readline readlines,
read():读取文件的全部内容,加上参数可以指定读取的字符。
readline():读取文件的一行。
readlines():读取文件的所有行到内存中。
不同场景下我们可以选择不同函数对文件进行读取。
1.1 方法一
file_name = input("请输入你要打开的文件的完整路径及名称")
file= open(file_name, "r")
txt=file.read()
# 全文本的处理
file.close()
使用read函数将文件中的内容全部读取,放在字符串变量txt中。这样操作适合于文本较小,处理简单的情况,当文件较大时,这种方式处理时不合适的。一次性读取较大的文件到内存中,会耗费较多的时间和资源。这时候分批处理效果更好。
1.2 方法二
file_name = input("请输入你要打开的文件的完整路径及名称")
file= open(file_name, "r")
txt= file.read(4)
# 文本的处理while txt != ""txt= file.read(4)
# 批量文本处理
file.close()
这种方法适合于分批处理文本信息,每次批量读入,批量处理,不会对内存造成较大的压力。
1.3 方法三
file_name = input("请输入你要打开的文件的完整路径及名称")
file= open(file_name, "r")for line infile.readlines():
# 处理每一行数据
file.close()
这种处理方式适合处理以行为分割特点的文本,并且文本较小,因为这种处理方式需要一次性把文件所有内容读取到内存中。
1.4 方法四
file_name = input("请输入你要打开的文件的完整路径及名称")
file= open(file_name, "r") # 这里的file时文件句柄for line infile:
# 处理每一行数据
file.close()
这种方式和方法三中的区别是分行读入,逐行处理,不会一次性把文件所有内容都读入到内存中,对一些大文件的处理是很有效的。
2 文件写入文本操作
文件写入有两种写入函数和一种辅助支持。
write():向文件中写入一个字符或者字节流
writelines():将一个元素全为字符串的列表写入到文件中 需要注意的是,writelines写入列表元素的时候会把列表元素的内容拼接到一起写入,不会有换行和空格 。
seek(): 辅助写入函数offset偏移量参数代表含义如下
0 - 文件开头
1 - 当前位置
2 - 文件结尾
2.1 方法一
file_name = input("output.txt", "w+")
text= "hello world!"file_name.write(text)
file.close()
2.2 方法二
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.writelines(list)for line infile:
# 读取写入的数据,这时候发现是没有任何内容的
file.close()
我们增加一行代码就可以读取到写入的文件内容,利用seek()函数调整写操作指针的位置,可以实现写操作之后的正常读取。
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.readlines(list)
file_name.seek(0) # 调整写的指针到文件的开始位置for line infile:
# 读取写入的数据,这时候会读出一行写入的数据。
file.close()
python如何提取文件名字?
一般完整的文件为:“文件名”.“文件格式”,可以通过“.”来获取文件名。
import os
file_name=[]
str_file=os.getcwd()#当前脚本路径
for dirpaths, dirnames, filenames in os.walk(str_file):
for filename in filenames:
if "." in filename:
filename=filename.split(".")[0]#以“.”为分割点获取文件名
file_name.append(filename)
print file_name