Python脚本——.csv文件转.txt脚本三则

第一则

"""
批量给指定文件夹内的所有.csv文件增加表头后转成txt
"""import osdef add_header_and_convert_to_txt(csv_folder, header, output_folder):# 获取指定文件夹中的所有.csv文件csv_files = [f for f in os.listdir(csv_folder) if f.endswith('.csv')]# 遍历每个.csv文件for csv_file in csv_files:# 构造完整的文件路径csv_file_path = os.path.join(csv_folder, csv_file)# 构造.txt文件路径txt_file_name = os.path.splitext(csv_file)[0] + '.txt'txt_file_name = os.path.basename(txt_file_name)txt_file_path = os.path.join(output_folder, txt_file_name)# 在.csv文件的第一行之前插入表头,并将其保存为.txt文件with open(csv_file_path, 'r', encoding='utf-8') as csv_file:lines = csv_file.readlines()lines.insert(0, header + '\n')with open(txt_file_path, 'w', encoding='utf-8') as txt_file:txt_file.writelines(lines)print('添加表头并转换为.txt文件完成。')# 使用方法示例:
csv_folder_path = 'your_folder_path'  # 替换为包含多个.csv文件的文件夹路径
header = 'column1,column2,column3,column4,column5,column6,column7,column8,column9,column10,column11,column12,column13,column14,column15,column16,column17,column18,column19,column20'  # 替换为您的表头内容
output_folder_path = 'your_output_folder_path'  # 替换为转换后的文件输出路径add_header_and_convert_to_txt(csv_folder_path, header, output_folder_path)

第二则

"""
给文件夹内特定的.csv文件添加表头后转成txt
"""
import osdef add_header_and_convert_to_txt(csv_folder, target_files, header):# 遍历目标文件夹中的文件for file_name in os.listdir(csv_folder):file_path = os.path.join(csv_folder, file_name)# 检查文件是否为目标 .csv 文件if file_name.endswith('.csv') and file_name in target_files:# 构造转换后的文件路径txt_file_path = os.path.splitext(file_path)[0] + '.txt'# 在 .csv 文件的第一行之前插入表头,并将其保存为 .txt 文件with open(file_path, 'r', encoding='utf-8') as csv_file:lines = csv_file.readlines()lines.insert(0, header + '\n')with open(txt_file_path, 'w', encoding='utf-8') as txt_file:txt_file.writelines(lines)print('添加表头并转换为 .txt 文件完成。')# 使用方法示例:
csv_folder_path = 'your_folder_path'  # 替换为包含多个 .csv 文件的文件夹路径
target_csv_files = ['file1.csv', 'file2.csv']  # 替换为目标 .csv 文件名列表
header = 'column1,column2,column3,column4,column5'  # 替换为您的表头内容add_header_and_convert_to_txt(csv_folder_path, target_csv_files, header)

第三则

"""
根据特定日期,在文件夹内获取特定的.csv文件添加表头后转成txt
"""
import os
import re
import datetimedef add_header_and_convert_to_txt(csv_folder, target_date, header):# 构造正则表达式模式pattern = re.compile(r'\d{8}\.csv$')# 遍历目标文件夹中的文件for file_name in os.listdir(csv_folder):if os.path.isfile(os.path.join(csv_folder, file_name)):# 检查文件名是否匹配正则表达式模式if pattern.match(file_name):# 提取文件名中的日期部分,并将其转换为 datetime 类型date_str = file_name.split('.')[0][-8:]file_date = datetime.datetime.strptime(date_str, '%Y%m%d').date()# 比较文件日期和目标日期if file_date == target_date:# 如果日期匹配,在 .csv 文件的第一行之前插入表头,并将其保存为 .txt 文件csv_file_path = os.path.join(csv_folder, file_name)txt_file_path = os.path.splitext(csv_file_path)[0] + '.txt'with open(csv_file_path, 'r', encoding='utf-8') as csv_file:lines = csv_file.readlines()lines.insert(0, header + '\n')with open(txt_file_path, 'w', encoding='utf-8') as txt_file:txt_file.writelines(lines)print(f'已处理文件:{file_name}')print('添加表头并转换为 .txt 文件完成。')# 使用方法示例:
csv_folder_path = 'your_folder_path'  # 替换为包含多个 .csv 文件的文件夹路径
target_date_str = '20230101'  # 替换为您期望的日期字符串
header = 'column1,column2,column3,column4,column5'  # 替换为您的表头内容target_date = datetime.datetime.strptime(target_date_str, '%Y%m%d').date()  # 将日期字符串转换为 datetime.date 类型
add_header_and_convert_to_txt(csv_folder_path, target_date, header)

for循环的两种不常见用法

for num in reversed(range(0, 31)):print(num)for num in range(30, 0, -1):print(num)

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

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

相关文章

LeetCode讲解篇之2280. 表示一个折线图的最少线段数

文章目录 题目描述题解思路题解代码 题目描述 题解思路 折线图中如果连续的线段共线,那么我们可以可以将其合并成一条线段 首先将坐标点按照横坐标升序排序 然后遍历数组 我们可以通过计算前一个线段的斜率和当前线段的斜率来判断是否共线 如果二者相等&#x…

【Linux常用的基本指令】

Linux学习笔记---002 Linux的基本指令1、ls指令2、pwd指令3、mkdir指令4、cd指令5、alias命令6、clear指令7、touch指令8、rmdir指令9、rm指令10、man指令11、cp指令12、mv指令13、cat指令14、more指令15、less指令16、时间相关的指令16.1、date指令16.2、cal指令 17、find指令…

Python之字符串中常用的方法

1. 去掉空格和特殊符号 name " abcdefgeyameng " name1 name.strip() # 并不会在原来的字符串上操作,返回一个去除了两边空白的字符串 print(name1, len(name1), name, len(name)) # abcdefgeyameng 14 abcdefgeyameng 17 # 去掉左边的空格和换行符 name2 n…

测试SpringBoot的时候报错mapper未装载的解决方案:

1.报错信息和截图: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name com.tang.testspringboot.TestSpringBootApplicationTests: Unsatisfied dependency expressed through field mapper: No qualifying bean o…

Python3.10安装教程

Python3.10安装 Python的安装按照下面几步进行即可,比较简单。 下载Python安装文件,打开Python的下载页面,我这里选择安装的版本是3.10.11,根据自己电脑版本选择对应安装包 安装包下载完毕后,按照步骤开始安装。选择…

620基于51单片机的密码锁设计[Proteus仿真]

620基于51单片机的密码锁设计[proteus仿真] 密码锁设计这个题目算是课 程设计和毕业设计中常见的题目了,本期是一个基于51单片机的密码锁设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2¥,私信…

springboot集成钉钉通知

目录 1.通过自定义机器人方式发送群消息 1.1说明 1.2发送普通消息示例(采用加签方式) 1.3注意事项 2.通过企业内部应用发送钉钉消息 2.1说明 2.2示例 2.3注意 1.通过自定义机器人方式发送群消息 1.1说明 官网地址: 自定义机器人发送…

2024年江苏省信息安全管理与评估理论题题库(单选120题,多选40题)

2024年江苏省信息安全管理与评估理论题题库(单选120题,多选40题) 因各方面原因,无法公开发布,只能设为vip文章,有需要的小伙伴可以看看。 单选题 PGP是一个基于下列哪个公钥加密体系的邮件加密软件?( )A.RSA B.Kerberos C.DES D.IDEA 防火墙通过( )控制来阻塞邮…

this.setState的注意事项

目录 1、this.setState的注意事项 2、是什么造成了this.setState()的不同步? 3、 那this.setState()什么时候同步,什么时候不同步? 3.1 经过React包装的onClick点击事件() 3.2 没经过React包装的 原生点击事件 …

嘘……快进来!这儿有最新版Microsoft照片程序的安装秘籍!(附安装引导程序下载)

网管小贾 / sysadm.cc 最近啊有不少小伙伴向我反馈,自个的 Windows 10 系统里边居然没有 Microsoft 照片 程序。 我觉得有点不可思议,为啥呢,因为他们的电脑是新买的! 你看哈,系统是 22H2 最新版,安装日期…

vscode打开c_cpp_properties.json文件的一种方式

步骤一 点击win32 步骤二 点击json 自动生成了

鸿蒙Harmony-线性布局(Row/Column)详解

人生的下半场,做个简单的人,少与人纠缠,多看大自然,在路上见世界,在途中寻自己。往后余生唯愿开心健康,至于其他,随缘就好! 目录 一,定义 二,基本概念 三&am…

如何使用“通义听悟”提高工作和学习效率

如何使用通义听悟提高工作和学习效率 通义听悟是一款利用人工智能技术,自动为音频和视频内容提供转写、翻译、总结、检索等功能的在线工具。它可以在会议、学习、访谈、培训等场景下,帮助您记录、阅读、整理、复习音视频信息,成为您的工作和…

FPGA 移位运算与乘法

题目: 已知d为一个8位数,请在每个时钟周期分别输出该数乘1/3/7/8,并输出一个信号通知此时刻输入的d有效(d给出的信号的上升沿表示写入有效) 由题意可知: 复位信号高有效,低复位;在inpu_grant上升…

WorkPlus卓越的即时通讯工具,助力企业提升工作效率

在当今快节奏的商业环境中,高效沟通和协作是企业成功的关键。而即时通讯作为实现高效沟通的利器,成为了现代企业不可或缺的一部分。作为一款领先的即时通讯工具,WorkPlus以其卓越的性能和独特的功能,助力企业打造高效沟通和协作的…

HTTP API 认证技术详解(二):Digest Access Authentication

目录 什么是 Digest Access Authentication 认证 Digest Access Authentication 认证的原理 Digest Access Authentication 认证的安全性 使用 Golang 实现 Digest Access Authentication 使用建议 小结 HTTP API 认证技术主要用于验证客户端身份,并确保只有经…

docker应用:搭建uptime-kuma监控站点

简介:Uptime Kuma是一个易于使用的自托管监控工具,它的界面干净简洁,部署和使用都非常方便。 历史攻略: docker:可视化工具portainer docker-compose:搭建自动化运维平台Spug 开源地址: ht…

【NI 国产替代】PXIe‑6378,16路AI(16位,3.5 MS/s/ch),4路AO,48路DIO,PXI多功能I/O模块

PXIe,16路AI(16位,3.5 MS/s/ch),4路AO,48路DIO,PXI多功能I/O模块 PXIe‑6378是一款同步采样的多功能DAQ设备。 该模块提供了模拟 I/O、数字I/O、四个32位计数器和模拟和数字触发。 板载NI‑STC3…

class_3:lambda表达式

1、lambda表达式是c11引入的一种匿名函数的方式&#xff0c;它允许你在需要函数的地方内联的定义函数&#xff0c;而无需单独命名函数&#xff1b; #include <iostream>using namespace std;bool compare(int a,int b) {return a > b; }int getMax(int a,int b,bool (…

算法通关村第十六关—滑动窗口与堆结合(黄金)

滑动窗口与堆结合 堆与滑动窗口问题的结合 LeetCode239给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位&#xff0c;返回滑动窗口中的最大值。  对于最大值、K个最大这种场…