python文件操作

一、地址

相对地址:返回上一级是 ./ 上上级是../

写路径时,因为\是转义字符,需要用\\ 或 /

import cv2
path = "img/klee.png" 
image = cv2.imread(path)
print(image.shape)

二、文件名存储TXT

将img文件夹下所有文件名存储到img_list.txt下

import os
target_file_path = "img"
txt_path="img_list.txt"
list_name = os.listdir(target_file_path) #listdir读取文件名
with open(txt_path,'w',encoding="utf-8") as f:
    for name in list_name:
        # splitext将路径名分为根[0]和扩展名[-1]
        # name = os.path.splitext(name)[0] #只取文件名
        f.write(name+'\n')

os.listdir() 返回文件(夹)名列表,是用来读取文件名的(包括后缀)。

os.path.split(path) 将path分割成目录和文件名二元组返回:

eg: os.path.split('c:\\img\\klee.png') 变成 ('c:\\img', 'klee.png')

os.path.splitext(path) 将path分割成文件名与扩展名二元组返回,可做分片操作:

eg: os.path.splitext('c:\\img\\klee.png') 变成 ('c:\\img\\klee', '.png')

三、对文件名TXT的修改

1、删除特定后缀

对上文的txt文件进行修改,删除txt存储的png后缀:

with open(txt_path, 'r') as f, open('Test_.txt', 'w') as f1:
    txt_list=f.readlines() #readlines读取txt内容
    for line in txt_list:
        new_line=line.split('.png')[0]
        f1.write(new_line+'\n')

f.readlines() 将整个txt文本全部读出并输出为一个列表,每行的字做为一个字符串。for遍历时每次为一行。

f.readline() 只读取第一行,并作为一个字符串输出。for遍历时为单字。

f.read() 把所有的字一次性读出并作为一个大的字符串。for遍历时为单字。

split() 函数:(于上面的os.path.split有区别)

string.split(str="", num=string.count(str) )[n]

str - - 分隔符,默认为所有的空字符,包括空格、换行(\n)等。

num - - 从前向后的分割次数。

[n] - - 选取的第n+1个分片.

补充:split() 函数还能用于去掉换行、制表符等 \n \t

c = '''hello
    world'''
print(c)
print(c.split('\n')) #去掉\n
print(c.split('\t')) #去掉\t
#输出为:

#hello
#    world
#['hello', '    world']
#['hello\n    world']

2、批量修改

批量修改文件夹中的文件,将img文件夹下所有png图片转换为jpg后缀文件并且存储在新的文件夹img_jpg下:

def PngToJpg(file_path,new_file_path):
    if not os.path.exists(new_file_path):
            os.makedirs(new_file_path)
    for fileName in os.listdir(file_path):
        # 创建文件后缀名为.jpg
        newFileName = fileName[0:fileName.find(".")]+".jpg"
        print(newFileName)
        # 文件修改并保存
        im = Image.open(file_path+"\\"+fileName) #找到这个图片
        rgb_im = im.convert('RGB') #先转换成rgb
        rgb_im.save(new_file_path+"\\"+newFileName) #保存

str[ ]操作注意:左闭右开

png图片有alpha通道(red,green,blue,alpha),不能直接转换到jpg格式(没有第四通道),需要先丢弃掉alpha通道转换成rgb,然后再直接保存为jpg格式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值