Python将DataFrame写入TXT时如何实现内容全左对齐无缩进
解决Pandas DataFrame写入TXT文件时的缩进问题
问题根源是pandas.DataFrame.to_string()方法默认会为了列对齐,在每行开头填充空格,导致内容出现缩进。以下是几种可行的解决方法:
方案1:逐行拼接列内容(精准控制格式)
直接遍历DataFrame的每一行,手动拼接各列内容,完全避免多余空格:
import pandas as pd # 示例var和var1数据(替换为你的实际数据) var = pd.DataFrame(['VAR_X', 'VAR_Y', 'VAR_Z'], columns=['col1']) var1 = pd.DataFrame([5, 15, 25], columns=['col3']) # 创建目标DataFrame df_finale = pd.DataFrame({ 'col0': '#define ', 'col1': var['col1'], 'col2': ' ', 'col3': var1['col3'] }) # 写入文件 with open(r'C:\python\tests.txt', 'a') as f: for _, row in df_finale.iterrows(): # 按列顺序拼接成一行 line = f"{row['col0']}{row['col1']}{row['col2']}{row['col3']}\n" f.write(line)
方案2:清理to_string输出的开头空格
如果坚持使用to_string(),可以对生成的文本做清洗,去掉每行开头的空白字符:
with open(r'C:\python\tests.txt', 'a') as f: df_string = df_finale.to_string(header=False, index=False) # 拆分每行并移除开头空格,再重新拼接 cleaned_content = '\n'.join([line.lstrip() for line in df_string.split('\n')]) f.write(cleaned_content)
方案3:用to_csv自定义输出格式
借助to_csv()方法,通过参数设置实现无缩进输出:
with open(r'C:\python\tests.txt', 'a') as f: # 设分隔符为空字符串,关闭表头、索引,同时关闭引号避免格式干扰 df_finale.to_csv(f, sep='', header=False, index=False, quoting=3)
内容的提问来源于stack exchange,提问作者Inuyasha84
相关产品推荐
相关产品推荐

