python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python TXT转CSV

10行Python代码实现TXT转CSV一键转换

作者:做科研的周师兄

本文提供了一段Python代码,用于解决TXT转CSV过程中可能遇到的乱码、分隔符设置错误、空行干扰和表头丢失等问题,代码简洁高效,适合科研和办公使用,无需深入理解Python语法,只需修改文件路径和分隔符设置即可完成转换,需要的朋友可以参考下

你是不是也经常遇到这些糟心事:拿到一堆 TXT 格式的实验数据、GIS 点数据、传感器监测数据,想导入 Excel/SPSS/ArcGIS 分析,却被乱码、分隔符不对、空行干扰 搞得心态爆炸?

手动改格式?数据量小还能凑活,几百上千行数据直接劝退;用 Excel 导入向导?步骤繁琐还容易丢表头,换个文件又要重新设置一遍。今天给大家分享一段我 日常科研中高频使用的 Python 代码,仅需 10 行核心代码,一键搞定 TXT 转 CSV,完美解决上述所有痛点,新手也能零门槛上手,看完就能复刻!

一、先聊痛点:你是不是也踩过这些坑?

处理 TXT 转 CSV 的过程中,90% 的人会遇到这 3 个核心问题:

针对这些痛点,我整理了一套 “懒人友好型” TXT 转 CSV 代码,只需修改 2 行路径,剩下的交给代码,全程无需懂复杂语法,新手也能 1 分钟搞定!

二、核心优势:为什么这套代码值得收藏?

零门槛使用:只需改 2 行路径,复制粘贴就能跑,不用懂 Python 底层逻辑;

解决乱码顽疾:专门适配 Excel 的编码格式,打开绝对无乱码;

适配各类分隔符:逗号、分号、制表符都能兼容,改一个参数就行;

自动清理空行:原始 TXT 有空白行?代码自动跳过,无需手动删;

保留完整表头:第一行表头原样保留,数据维度不跑偏;

可视化验证:转换完成后自动输出数据行数 / 列数 / 表头,直观确认是否转换成功。

三、完整可运行代码(直接复制用)

先上完整代码,大家可以先收藏,后面逐行拆解核心逻辑:

# -*- coding: utf-8 -*-
"""
Created on Mon Jan 19 18:11:27 2026
@author: 做科研的周师兄
"""

import pandas as pd

# ====================== 只需修改这2行路径 ======================
txt_file_path = r"L:\ML\train\point\IntptRtP.txt"  # 你的txt文件完整路径
csv_save_path = r"L:\ML\train\point\IntptRtP.csv"  # 生成的csv保存路径
# ==============================================================

# 核心转换:分隔符设为分号(若实际是逗号,把 sep=';' 改成 sep=',' 即可)
df = pd.read_csv(
    txt_file_path,
    sep=',',                # 关键:指定分隔符为分号
    header=0,               # 关键:第一行是表头,自动识别表头
    encoding='utf-8',       # 编码:Windows可选gbk,乱码时替换
    skip_blank_lines=True   # 自动跳过空行
)

# 保存为CSV(保留表头,Excel打开无乱码)
df.to_csv(csv_save_path, index=False, encoding='utf_8_sig')

print("✅ 转换完成!")
print(f"📄 输入文件:{txt_file_path}")
print(f"📄 输出文件:{csv_save_path}")
print(f"📊 数据结构:{df.shape[0]}行 × {df.shape[1]}列(表头:{list(df.columns)})")

四、逐行拆解:核心代码为什么这么写?

很多新手怕改参数出错,我把每一行的核心逻辑讲透,让你不仅会用,还知道为什么这么用:

1. 环境准备(基础中的基础)

import pandas as pd

2. 路径设置(唯一需要手动改的地方)

txt_file_path = r"L:\ML\train\point\IntptRtP.txt"
csv_save_path = r"L:\ML\train\point\IntptRtP.csv"

3. 核心读取:解决分隔符 / 空行 / 表头问题

df = pd.read_csv(
    txt_file_path,
    sep=',',                # 分隔符:根据你的TXT改(,/;/\t/空格)
    header=0,               # 表头:0表示第一行是表头,无表头则设为None
    encoding='utf-8',       # 读取编码:乱码就换成gbk(Windows默认)
    skip_blank_lines=True   # 自动跳过空行,避免读取到NaN值
)

pd.read_csv()不仅能读 CSV,更是解析结构化 TXT 的利器,重点参数解读:• sep:分隔符,是 TXT 解析的核心!如果你的 TXT 用分号分隔,就改成sep=';';用制表符分隔则改sep='\t',这一步错了会导致列混乱;• header=0:告诉 pandas “第一行是表头”,解析后会自动将表头设为列名,无需手动处理;• encoding='utf-8':解决中文乱码的基础配置,Windows 系统如果仍乱码,换成encoding='gbk'即可;• skip_blank_lines=True:自动过滤 TXT 中的空行,避免生成多余的空行数据。

4. 保存为 CSV—— 避免 Excel 乱码

df.to_csv(csv_save_path, index=False, encoding='utf_8_sig')
保存环节的 2 个关键避坑点:• index=False:不保存 pandas 默认的行索引(比如 0、1、2...),只保留原始数据,否则 Excel 打开会多一列无用数据;• encoding='utf_8_sig':这是解决 “CSV 用 Excel 打开中文乱码” 的终极方案!比单纯的utf-8多了 BOM 头,完美适配 Excel。

5. 输出提示信息 —— 可视化转换结果

print("✅ 转换完成!")
print(f"📄 输入文件:{txt_file_path}")
print(f"📄 输出文件:{csv_save_path}")
print(f"📊 数据结构:{df.shape[0]}行 × {df.shape[1]}列(表头:{list(df.columns)})")

贴心的提示信息,让你一眼知道:• 转换是否成功;• 输入 / 输出文件的具体路径;• 数据的行数、列数,以及表头名称,快速验证数据是否解析正确。

# -*- coding: utf-8 -*-
"""
做科研的周师兄:
TXT转CSV一键工具
适用场景:科研数据、结构化TXT批量转换,解决乱码/空行/分隔符问题
"""

import pandas as pd

# ====================== 只需修改这2行路径 ======================
txt_file_path = r"L:\ML\train\IntptRtP.txt"  # 你的txt文件完整路径
csv_save_path = r"L:\ML\train\IntptRtP.csv"  # 生成的csv保存路径
# ==============================================================

# 核心转换:按需调整sep分隔符即可
df = pd.read_csv(
    txt_file_path,
    sep=',',                # 关键:根据TXT实际分隔符改(; / \t / 空格等)
    header=0,               # 第一行作为表头
    encoding='utf-8',       # 乱码时替换为gbk(Windows)
    skip_blank_lines=True   # 自动跳过空行
)

# 保存为CSV(Excel打开无乱码)
df.to_csv(csv_save_path, index=False, encoding='utf_8_sig')

# 输出转换结果提示
print("✅ 转换完成!")
print(f"📄 输入文件:{txt_file_path}")
print(f"📄 输出文件:{csv_save_path}")
print(f"📊 数据结构:{df.shape[0]}行 × {df.shape[1]}列(表头:{list(df.columns)})")

五、新手快速上手

步骤1. 安装 pandas(如果没装):打开 cmd / 终端,执行pip install pandas;2. 修改路径:把代码中txt_file_path和csv_save_path改成你自己的文件路径;3. 调整分隔符:打开你的 TXT 文件,看数据是用逗号、分号还是制表符分隔,对应修改sep参数;4. 运行代码:直接运行,控制台会输出转换结果,去指定路径找 CSV 文件即可。

六、常见问题解决(避坑!)

1. 中文乱码:◦ 先试encoding='gbk'(Windows 系统多数情况适用);◦ 保存 CSV 时必须用utf_8_sig,而非utf-8;

2. 列数不对 / 数据挤在一列:◦ 99% 是sep分隔符设置错误,打开 TXT 文件确认分隔符(比如是分号就改sep=';');

3. 空行太多:代码已默认skip_blank_lines=True,无需额外处理;

4. 表头丢失:检查header=0是否设置,若 TXT 无表头,改成header=None即可。

七、总结这段代码的核心优势:

1. 极简易用:新手只需改 2 行路径,无需懂复杂语法;

2. 避坑全面:解决了乱码、空行、分隔符、索引多余等 90% 的常见问题;

3. 可视化反馈:转换后输出数据维度和表头,快速验证结果。不管是科研数据处理、日常办公数据转换,还是批量处理多个 TXT 文件(只需加个循环即可扩展),这段代码都能极大提升效率。

如果有其他问题,欢迎在评论区留言,一起交流优化!(别忘了点赞 + 收藏,下次需要转格式时直接抄作业~)

关键点回顾

1. pd.read_csv()是解析结构化 TXT 的核心,sep分隔符是解析正确的关键;

2. 保存 CSV 时用encoding='utf_8_sig'可彻底解决 Excel 中文乱码;

3. 路径前加r避免 Windows 系统转义字符问题,新手只需改路径即可上手。

以上就是10行Python代码实现TXT转CSV一键转换的详细内容,更多关于Python TXT转CSV的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文