【头歌】——数据分析与实践-基于Python语言的文件与文件夹管理-文本 文件处理-利用csv模块进行csv文件的读写操作

这篇具有很好参考价值的文章主要介绍了【头歌】——数据分析与实践-基于Python语言的文件与文件夹管理-文本 文件处理-利用csv模块进行csv文件的读写操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于Python语言的文件与文件夹管理

第1关 创建子文件夹

import os

def mkDir():
    # 创建名为 'dst' 的文件夹
    os.makedirs('dst', exist_ok=True)

# 如果文件被直接运行,执行测试代码
if __name__ == "__main__":
    mkDir()
    
    # 判断当前文件夹中是否存在文件夹 'dst'
    if os.path.exists('dst') and os.path.isdir('dst'):
        print('mkdir success')
    else:
        print('dst does not exist')

第2关 删除带有只读属性的文件

import os
import sys

def removeFile():
    # 删除 'src/removeme.txt' 文件
    try:
        os.remove('src/removeme.txt')
        print('remove success')
    except FileNotFoundError:
        print('remove success')
        sys.exit()
# 如果文件被直接运行,执行测试代码
if __name__ == "__main__":
    removeFile()

第3关 批量复制文件夹中的所有文件

未通过本题,如果您通过了本题欢迎补充到评论区,有时间我会整理进来文章来源地址https://www.toymoban.com/news/detail-823741.html






文件处理

第1关 读取宋词文件,根据词人建立多个文件

import shutil
import os
if os.path.exists("wjcl/src/step3/cr"):
    shutil.rmtree("wjcl/src/step3/cr")
os.mkdir("wjcl/src/step3/cr")
f1=open("wjcl/src/step1/宋词.txt",'r')
#代码开始
#os.chdir("wjcl/src/step3/cr")
for line in f1.readlines():#逐行读取文件
    k=0
    if " "in line:
        k=1
        pos=line.find(" ")#pos为冒号所在位置
        pos1=line.find("\n")
        xm=line[pos+1:pos1]#截取姓名
        if xm !="": f2=open('wjcl/src/step3/cr/'+xm+".txt",'a+')#以追加的方式打开文件xm.txt(不存在就新建,存在就打开)
        if len(line.strip("\n").strip())>0:
          f2.write(line)#将读出的内容写入文件
    if len(line.strip("\n").strip()) > 0 and k !=1:
        f2.write(line)  # 将读出的内容写入文件




#代码结束
f1.close()
f2.close()

第2关 读取宋词文件,并根据词人建立多个文件夹

import os
import shutil
if os.path.exists("wjcl/src/step4/sccr"):
    shutil.rmtree("wjcl/src/step4/sccr")
os.mkdir("wjcl/src/step4/sccr")
f1=open("wjcl/src/step1/宋词.txt",'r')
#代码开始
for line in f1.readlines():#逐行读取文件
    k=0
    if " "in line:
        k=1
        pos=line.find(" ")#pos为冒号所在位置
        pos1=line.find("\n")
        xm=line[pos+1:pos1]#截取姓名
        if not os.path.exists("wjcl/src/step4/sccr/"+xm):os.mkdir("wjcl/src/step4/sccr/"+xm)#以追加的方式打开文件xm.txt(不存在就新建,存在就打开)
f1.close()

#代码结束
                

第3关 读取宋词文件,建立多个词人文件夹,为每首词在文件夹下建立文本文件

import os
import shutil
if  os.path.exists("wjcl/src/step5/cr"):
    shutil.rmtree("wjcl/src/step5/cr")
os.mkdir("wjcl/src/step5/cr")
f1=open("wjcl/src/step1/宋词.txt",'r')
#代码开始
list_str = f1.readlines()
temp_str = ''
name = ''
for s in list_str:
    if s.find(' ') != -1:
        if len(temp_str) == 0:
            temp_str += s
        else:
            if name == '':
                name = s
            file_path = 'wjcl/src/step5/cr/' + name[name.find(' ') + 1:-1]
            if not os.path.exists(file_path):
                os.mkdir(file_path)
            title_path = file_path + '/' + name[0:name.find(' ')] + '.txt'
            f2 = open(title_path, 'a+', encoding='utf-8')
            f2.write(temp_str)
            f2.close()
            temp_str = s
        name = s
    else:
        temp_str += s
file_path = 'wjcl/src/step5/cr/' + name[name.find(' ') + 1:-1]
if not os.path.exists(file_path):
    os.mkdir(file_path)
title_path = file_path + '/' + name[0:name.find(' ')] + '.txt'
f2 = open(title_path, 'a+', encoding='utf-8')
f2.write(temp_str)
f2.close()
f1.close()
#代码结束

第4关 文件的统计

import os
wjzd={}
wjsize={}
lj="wjcl/src/test"
#代码开始

def get_size_type(f_path):
    global lj
    files_name = os.listdir(f_path)
    for name in files_name:
        file_path = os.path.join(f_path, name)
        ty = str(os.path.splitext(file_path)[1]).strip('.')
        if os.path.isdir(file_path):
            get_size_type(file_path)
        if not ty or ty == 'gitkeep':
            continue
        else:
            wjzd.setdefault(ty, 0)
            wjzd[ty] += 1
            wjsize.setdefault(ty, 0)
            wjsize[ty] += os.path.getsize(file_path)
get_size_type(lj)
ans = ['txt', 'mp3', 'jpg', 'pptx']

#代码结束
for x in ans:
    print("文件类型{}文件数{}文件大小{:.2f}KB".format(x,wjzd[x],wjsize[x]/1024))

第5关 文件的移动

import os
import shutil
wj={"图片":".jpeg.jpg.png.jfif","文档":".txt.docx.pdf","音乐":".mp3.wav","影像":".mp4.flv"}
lj1="wjcl/src/test2"
lj="wjcl/src/test3"
if os.path.exists(lj):
    shutil.rmtree(lj)  
shutil.copytree(lj1,lj)
#代码开始
def move_file(path):
    if not os.path.exists(lj + path):
            os.mkdir(lj + path)
    shutil.move(file_path, lj + path)
files = os.listdir(lj)
for name in files:
    file_path = os.path.join(lj, name)
    ty = str(os.path.splitext(name)[1])
    if ty == '.gitkeep' or name == '.gitkeep':
        continue
    if wj['图片'].find(ty) != -1:
        move_file('/img')
    elif wj['文档'].find(ty) != -1:
        move_file('/idoc')
    elif wj['音乐'].find(ty) != -1:
        move_file('/music')
    elif wj['影像'].find(ty) != -1:
        move_file('/video')
#代码结束
#for x in os.listdir(lj):
#   if x!=".gitkeep":
#        print(os.listdir(lj+"/"+x))
l = [['青城山.png', '杜甫草堂.png', '春熙路图集3.jfif', 'ifs大熊猫.jpg', '春熙路图集2.jpeg', '基地1.jpg', '春熙路图集1.jfif'],
['学院设置.docx', '昆明.docx', '考题四.pdf', '琵琶行并序.txt', '考题一.pdf'],
['pq.flv', '七彩丹霞视频.mp4', '云南十八怪_.mp4'],
['花儿尕恋手令.mp3', 'add.wav', 'score.wav', '山歌好比春江水.mp3']]
for n in l:
    print(n)
#代码结束




利用csv模块进行csv文件的读写操作

第1关 csv文件的读操作

import csv    #导入csv模块
   
########## Begin ##########
contents=[]
filename='project/iris.csv'
csv_file=open(filename,mode='r',encoding='utf-8')
reader=csv.reader(csv_file)
for item in reader:
    contents.append(item)                            #打开数据集的文件,file是相应的文件句柄
                            #读取数据,把数据放在contents中
########## End ##########


for line in contents:    #打印文件内容
    ########## Begin ##########
    print(line)
    ########## End ##########
line_num=len(contents)
print(line_num)

第2关 csv文件的写操作

import csv


########## Begin ##########
filename='project/students.csv'
csvfile2=open(filename,'w',newline='')
writer2=csv.writer(csvfile2)                            #打开文件,newline是否换行的参数
                            #如果不指定newline='',则每写入一行将有一空行被写入

########## End ##########

row=["序号","学号","姓名","性别","学院"]
rows=[[1,"1409090312","张雨","女","计算机学院"],
      [2,"1409103265","陈敢","男","理学院"],
      [3,"1509111023","李家祥","女","计算机学院"],
      [4,"1409090311","邓贵","男","理学院"],
     ]

########## Begin ##########
writer2.writerow(row)
writer2.writerows(rows)
row1=['1',"1409090312","张雨","女","计算机学院"]
row2=['2',"1409103265","陈敢","男","理学院"]
row3= ['3',"1509111023","李家祥","女","计算机学院"]
row4=['4',"1409090311","邓贵","男","理学院"]                          #将row和rows写入文件
print(row)
print(row1)
print(row2)
print(row3)
print(row4,end='')
# for item in rows
#       print(item)

# filename='project/students.csv'
# with open(filename,'r')as file:
#       csv_reader=csv.reader(file)
#       for row in csv_reader:
#             print(row)
########## End ##########




到了这里,关于【头歌】——数据分析与实践-基于Python语言的文件与文件夹管理-文本 文件处理-利用csv模块进行csv文件的读写操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 头歌平台python数据分析——(9)Matplotlib图形配置

    头歌平台python数据分析——(9)Matplotlib图形配置

    ,根据输入数据绘制热成像图并隐藏坐标轴,具体要求如下: 图形的figsize为(10, 10); 图形保存到Task1/img/T1.png。 根据函数参数file_name读取文件,统计每年births的总和并作折线图,为最高/最低出生数年份设置注释,具体要求如下: 对数据进行去空值处理; 注释文字的坐标位置

    2024年02月10日
    浏览(94)
  • [数据挖掘、数据分析] clickhouse在go语言里的实践

    [数据挖掘、数据分析] clickhouse在go语言里的实践

    [数据挖掘] clickhouse在go语言里的实践 [数据挖掘] 用户画像平台构建与业务实践 今天给大家介绍一款OLAP大数据处理软件 clickhouse ,在业界它有一个荣誉,那就是”快“,当然此快不是开车快的意思,是指clickhouse在大数据量级的查询方面,对比Spark 、MySQL 、Hive 、Hadoop,速度有

    2024年02月08日
    浏览(11)
  • 基于大数据的可视化:数据分析和展示的最佳实践

    作者:禅与计算机程序设计艺术 随着互联网、移动互联网、大数据等技术的广泛应用,用户对于各种各样的数据已经产生了海量的需求。数据呈现的形式也变得越来越多样化,包括报表、图表、地图、流程图、模型等。而如何将这些数据可视化、交流和传播,是一个重要的方

    2024年02月09日
    浏览(16)
  • 【案例实践】R语言多元数据统计分析在生态环境中的实践应用

    【案例实践】R语言多元数据统计分析在生态环境中的实践应用

    查看原文R语言生物群落分析绘图、多元统计分析、CMIP6、遥感碳储量、GEE林业、InVEST等 生态环境领域研究中常常面对众多的不同类型的数据或变量,当要同时分析多个因变量(y)时需要用到多元统计分析(multivariate statistical analysis)。多元统计分析内容丰富,应用广泛,是

    2023年04月12日
    浏览(10)
  • R语言生物群落(生态)数据统计分析与绘图实践技术应用

    R 语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂,涉及众多统计分析方法。以生物群落数据分析中的最常用的统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法为主线,通过多个来自经典研究中

    2024年02月08日
    浏览(11)
  • 头歌:共享单车之数据分析

    第1关 统计共享单车每天的平均使用时间 第2关 统计共享单车在指定地点的每天平均次数   第3关 统计共享单车指定车辆每次使用的空闲平均时间   第4关 统计指定时间共享单车使用次数   第5关 统计共享单车线路流量

    2024年02月20日
    浏览(19)
  • 【大数据 | 综合实践】大数据技术基础综合项目 - 基于GitHub API的数据采集与分析平台

    【大数据 | 综合实践】大数据技术基础综合项目 - 基于GitHub API的数据采集与分析平台

    🤵‍♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍 🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能硬件(虽然硬件还没开始玩,但一直

    2024年02月08日
    浏览(14)
  • 【R语言数据分析】基于R语言对中、美两国GDP分析(R语言大作业)

    【R语言数据分析】基于R语言对中、美两国GDP分析(R语言大作业)

    目录 一、研究意义 二、数据来源 三、读取数据 读取数据代码 运行结果截图 四、数据分析绘制箱线图 建立箱线图代码 运行结果截图  五、建立回归模型 建立回归模型代码  运行结果截图 有关于相关系数的计算与检验  六、回归分析 确定回归方程 七、预测中国和美国未来

    2024年02月03日
    浏览(30)
  • Python数据分析:NumPy、Pandas和Matplotlib的使用和实践

    Python数据分析:NumPy、Pandas和Matplotlib的使用和实践

    在现代数据分析领域中,Python已成为最受欢迎的编程语言之一。Python通过庞大的社区和出色的库支持,成为了数据科学家和分析师的首选语言。在Python的库中,NumPy、Pandas和Matplotlib是三个最为重要的库,它们分别用于处理数值数组、数据处理和可视化。本文将介绍这三个库的

    2024年02月04日
    浏览(12)
  • Spark内容分享(二十七):阿里云基于 Spark 的云原生数据湖分析实践

    Spark内容分享(二十七):阿里云基于 Spark 的云原生数据湖分析实践

    目录 Spark 与云原生的结合 1. 传统 Spark 集群的痛点 2. Spark 与云原生结合的优势 Spark on K8s 原理介绍 1. Spark 的集群部署模式 2. Spark on K8s 的部署架构 3. Spark on K8s 部署架构——对比 4. Spark on K8s 社区进展 5. Spark 3.3 新特性介绍 Spark on K8s 在阿里云 EMR 上的实践 1. EMR Spark on ACK 2. 充分

    2024年01月15日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包