Python将生成的TXT文件转换为CSV格式:技术求助
用Python将TXT文件转换为CSV的简单方法
嘿,别发愁!这个转换任务其实很适合新手入门,我给你两种最常用的实现方式,跟着代码走就行~
场景1:TXT内容用固定分隔符(空格/逗号/制表符)分隔
如果你的TXT文件每行的内容是用固定符号分开的(比如每行是 张三,25,北京 或者 李四 30 上海),直接用Python内置的csv模块就能搞定,代码超简单:
import csv # 替换成你的TXT文件路径 txt_file_path = "input.txt" # 替换成你要生成的CSV文件路径 csv_file_path = "output.csv" # 打开TXT和CSV文件 with open(txt_file_path, 'r', encoding='utf-8') as txt_file, open(csv_file_path, 'w', newline='', encoding='utf-8') as csv_file: # 创建CSV写入器 writer = csv.writer(csv_file) # 逐行读取TXT内容 for line in txt_file: # 这里的分隔符要和你的TXT对应:比如逗号就用',',空格用' ',制表符用'\t' # 如果是多个空格分隔,就用split()(不带参数会自动分割任意数量的空格) row = line.strip().split(',') # 把每行内容写入CSV writer.writerow(row) print("转换完成啦!")
小提示:
- 如果你的TXT里是用多个空格分隔内容(比如
张三 25 北京),把split(',')改成split()就行,它会自动忽略多余的空格。 newline=''是为了避免CSV里出现多余的空行,很重要哦!
场景2:TXT内容是固定长度的格式
如果你的TXT是类似这种固定长度的格式:
张三 25北京
李四 30上海
也就是说每个字段的位置是固定的(比如姓名占3位,年龄占2位,城市占2位),那可以用字符串切片来提取字段:
import csv txt_file_path = "input.txt" csv_file_path = "output.csv" with open(txt_file_path, 'r', encoding='utf-8') as txt_file, open(csv_file_path, 'w', newline='', encoding='utf-8') as csv_file: writer = csv.writer(csv_file) # 先写入表头(如果需要的话) writer.writerow(["姓名", "年龄", "城市"]) for line in txt_file: line = line.strip() # 根据固定位置切片,这里的数字要根据你的实际格式调整 name = line[0:3].strip() age = line[3:5].strip() city = line[5:7].strip() writer.writerow([name, age, city]) print("转换完成!")
额外注意事项
- 记得替换代码里的文件路径,别直接用示例里的
input.txt和output.csv哦! - 如果你的TXT文件有表头,记得在写入CSV的时候先写一行表头(就像场景2里那样),这样表格打开的时候会更清晰。
- 如果遇到乱码问题,试试把
encoding='utf-8'改成encoding='gbk',有些中文文件会用这个编码。
内容的提问来源于stack exchange,提问作者dkeeper09
相关产品推荐
相关产品推荐

