python把csv文件转换txt_Python实现txt文件转csv格式
码农公社 210.net.cn 210= 1024 10月24日一个重要的节日--码农(程序员)节
把txt文件转成成csv文件格式,通过手动打开excel文件,然后导入txt来生产csv文件。
现在每周有大量的数据要处理,手动方式太不现实,决定用python自动化脚本来实现,思路:
1.读取文件夹中所有txt文件,保存到list中
2.对每个txt文件,自动生成同名的csv文件
3.对每个txt文件,根据分隔符来保存为csv文件,分隔符为分号“;”
在转换之前先把文件编码统一成'utf-8',因为在实现过程中,发现总会有编码报错问题出现。
4.新建txt文件夹来存放所有txt文件
完整代码如下:
import csv
import os
import shutil
from chardet.universaldetector import UniversalDetector
def get_encode_info(file):
with open(file, 'rb') as f:
detector = UniversalDetector()
for line in f.readlines():
detector.feed(line)
if detector.done:
break
detector.close()
return detector.result['encoding']
def read_file(file):
with open(file, 'rb') as f:
return f.read()
def write_file(content, file):
with open(file, 'wb') as f:
f.write(content)
def convert_encode2utf8(file, original_encode, des_encode):
file_content = read_file(file)
file_decode = file_content.decode(original_encode,'ignore')
file_encode = file_decode.encode(des_encode)
write_file(file_encode, file)
## Move *.txt to a folder
def move2txtfolder(path, txt_file_list):
txt_folder_path = path + '\\txt'
if not os.path.exists(txt_folder_path):
os.makedirs(txt_folder_path)
for file in txt_file_list:
des_path = os.path.join(txt_folder_path, os.path.basename(file))
shutil.move(file, des_path)
##在路径中找出所有的*.txt文件
def findtxt(path, txt_file_list):
file_name_list = os.listdir(path)
for filename in file_name_list:
de_path = os.path.join(path, filename)
if os.path.isfile(de_path):
if de_path.endswith(".txt"): # Specify to find the txt file.
txt_file_list.append(de_path)
else:
findtxt(de_path, txt_file_list)
def txt2csv(txt_file):
##先把所有文件的encoding都转换成utf-8
encode_info = get_encode_info(txt_file)
if encode_info != 'utf-8':
convert_encode2utf8(txt_file, encode_info, 'utf-8')
csv_file = os.path.splitext(txt_file)[0] + '.csv'
with open(csv_file, 'w+', newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile, dialect='excel')
with open(txt_file, 'r', encoding='utf-8') as txtfile:
for line in txtfile.readlines():
line_list = line.strip('\n').split(';')
writer.writerow(line_list)
if __name__ == '__main__':
folder_path = r'C:\Details'
# ##如果文件夹中还有子文件夹,请用findtxt函数
# txt_file_list = []
# findtxt(folder_path, txt_file_list)
##如果文件夹中没有子文件夹的时候直接使用推导式来生产txt文件的list
txt_file_list = [os.path.join(folder_path, file) for file in os.listdir(folder_path) if os.path.join(folder_path, file).endswith('.txt')]
for txt_file in txt_file_list:
txt2csv(txt_file)
move2txtfolder(folder_path, txt_file_list)
引自https://www.cnblogs.com/danvy/p/11667763.html,轻度整理。
python把csv文件转换txt_Python实现txt文件转csv格式相关推荐
- 如何将asc文件转换成的txt文件,并导入到sql server中?
最近的工作是利用Arcgis处理得到pixels 数据,再用erdas 软件将pixels 数据转换成 ASCII码,最终生成了asc文件(文件中的数据每3个数据为一组,分别表示了: 横坐标X:纵坐标 ...
- python读取多个文件夹下所有txt_Python实现合并同一个文件夹下所有txt文件的方法示例...
本文实例讲述了Python实现合并同一个文件夹下所有txt文件的方法.分享给大家供大家参考,具体如下: 一.需求分析 合并一个文件夹下所有txt文件 二.合并效果 三.python实现代码 # -*- ...
- Python 将MP3音频文件转换成MIDI乐谱文件
Python 将MP3音频文件转换成MIDI乐谱文件 spleeter 1.系统环境 我的Python环境 安装spleeter pip install spleeter 查看spleeter是否安装 ...
- Python 学习笔记(3)对txt文件的读与写操作(下)
上一章节我们讨论了如何对txt文本文件进行读写操作,这一张将讨论如何进行二进制文件的写与读.<Python 学习笔记(3)对txt文件的读与写操作(上)>的链接如下https://blog ...
- Python读取txt文件画Loss曲线图---txt文件转xls文件---xls文件转txt文件--xml文件转txt文件
任务1- 读取.txt文件画折线图(曲线图) 任务2- 将.txt文件转换成.xls(excel)文件 任务3- 将.xls(excel)文件转换成.txt文件 任务4- 读取.txt文件画折线图(曲 ...
- python合并文件夹下的文件_Python实现合并同一个文件夹下所有txt文件的方法示例...
本文实例讲述了Python实现合并同一个文件夹下所有txt文件的方法.分享给大家供大家参考,具体如下: 一.需求分析 合并一个文件夹下所有txt文件 二.合并效果 三.python实现代码 # -*- ...
- 【Python】转译日文乱码(txt文件)
参考文章:[浅谈]日文的文本等出现乱码的情况以及解决办法 原理已在参考文章中简明,核心原理是使用python的decode和encode函数,附加python的文件操作,实现txt文件的读.写 程序工 ...
- java怎样输出一个文件夹,java合并一个文件夹下所有txt文件,输出到另一个txt,...
java合并一个文件夹下所有txt文件,输出到另一个txt,最近写了个单元测试,递归调用方法,把同一个文件夹里所有的txt合并输出到一个txt文件.参考了两个博客,分别是已有的方法,还有个就是检测tx ...
- pip 安装protobuf_Python3.6安装protobuf模块+将proto文件转换成pb2.py文件
Python对版本的对应即为苛刻,笔者第一次安装时遇到了很多坑,比如无法将proto文件转换成py文件,转换了之后文件无法使用,网上各种各样的解决办法都没有讲到重点.其实会出现各种各样的问题是由于版本 ...
最新文章
- leetcode算法题--石子游戏
- 海外投行抢滩大数据 人工智能等领域趋热
- nginx 知识点 :ctx_index and index
- 第十九期:CIO不懂老板数字化转型的目的,因为老板也不知道自己想要什么
- Leetcode--145. 二叉树的后序遍历(迭代递归)
- Outlook 2013 电子邮件账户设置备份与恢复
- 智能陈桥五笔输入法 for linux,智能陈桥五笔官方版
- Chrome版本下载
- Taobao网的目录分类结构
- 七月文章导读【5G相关】:从摩斯码到5G;5G承载网;5G链路自适应及CQI工作过程
- 百度瓦片地图在线下载以及合成
- 如何修改 Windows10 操作系统里某种文件类型的默认图标
- JavaScript 设计模式学习第七篇- 单例模式
- Unity VR成像原理
- 阿里云 数据库mysql卸载安装,基本上所有坑全趟了
- 基于Labview的水位水温控制系统——虚拟仪器实验设计报告
- 1367 查找二叉树(tree_a)
- 勾股定理计算机语言,勾股定理
- 初识IndexedDB本地存储
- 逻辑题:100层扔鸡蛋问题(扔球问题)
热门文章
- linux 常见命令 cp,Linux 常用命令之cp,一个可以煮饭的工具;
- rbenv mysql_mysql-无法在macOS Si上安装mysql2 gem
- kvm虚拟机安装esxi服务器,VMware vSphere虚拟机迁移至KVM virt-v2v方案
- 高级会计可以用计算机,高会无纸化考试计算器不好用 建excel计算可以吗?官方回复!...
- 测试linux系统的程序员,日常测试Linux命令
- aliyun maven 添加jar_Maven介绍及安装
- java 任务池_多线程的应用-异步任务线程池的简单实现
- linux如何卸载光驱显示busy,关于linux卸载设备时的busy问题处理
- java eclipse 入门_Eclipse使用入门教程介绍
- js创建file对象 字符串 txt_js-创建对象的多种方式