python基础实验:文件操作

本文介绍了如何使用Python进行文件操作,包括创建文件夹、读取和处理文本文件(如info.txt),以及将图片从一个目录按照学生姓名重命名并复制到新目录img_new中。重点讲解了模块导入、文件操作函数和shutil库的使用。
摘要由CSDN通过智能技术生成

python基础:文件操作

一、实验题目

python基础:文件操作

二、实验内容简介

现有文本文件,内容是每行包含名学生信息:序号,姓名,身份证号,性别,并且以一个空格分开。在img文件夹下有以身份证号命名的个人照片,但是其中的照片很多,也有可能某些学生没有照片。

·请编写程序

·创建文件夹,名称为img_new

·将img文件夹中所有包含的学生的照片命名为学生姓名存储到img_new文件夹中。

三、实验过程  

1. 代码

import os

import shutil

from shutil import copy

# 创建文件夹,名称为img_new

path_new = './img_new/'

# 判断路径是否存在

if not os.path.exists(path_new):

    # 递归创建多层目录

    os.makedirs(path_new)

# 打开info

file = open('info.txt', 'r', encoding='utf-8')

# img路径

path_p = './img'

filelist = os.listdir(path_p)

for j in file.readlines():

    identity = j.split(" ")[2]

    name = j.split(" ")[1]

    for i in filelist:

        if i[1:18] in identity:

            src = os.path.join(os.path.abspath(path_p), i)

            dst = os.path.join(os.path.abspath(path_new), i)

            newName = os.path.join(path_new) + name+'.png'

            # 复制图片

            shutil.copy(src, dst)

            # 图片重命名

            os.rename(dst, newName)

# 关闭

file.close()

2. 关键知识点解析

①  模块的导入

   import  :  import random

import os, time, sys, re

import random as rd

   from.....import:  from random import randint

from random import randint, choice

from random import randint as rd

   注:同一个模块,只会被导入一次

② 文件操作

打开文件:file = open(file_name,access_mode,encoding=’utf-8’)

--encoding:  文件编码格式,默认为当前系统的置信编码

关闭文件:file.close()

写文件:file.write('aaaaa')                 --参数为字符串

          file.writelines(['aaaaa\n', 'bbbbbb\n'])    --参数为列表

读文件:file.read()       --一次性将文件内容读入到字符串变量中

          file.readline()     --每次读取一行;返回的是一个字符串对象

          file.readlines()    --一次性读取整个文件;自动将文件内容分析成

                                一个字符串列列表

  文件系统-os  import os

os.makedirs(path_new):递归创建多层目录,若最内层目录已存在则抛出异常

os.listdir(path_p):列出指定目录下文件名

os.rename(old,new):将文件old重命名为new

④  文件系统-os.path   from os import path

os.path.exists(path_new):判断路径是否存在

⑤ 复制图片

    import shutil

    shutil.copy(src, dst)

3. 实验结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值