Python代码仅添加一行0值行,需实现批量添加至txt行数可被3整除
解决方法
原代码的问题在于只判断一次并添加一行0,无法处理需要补充多行的场景(比如当前行数为4时,需要加2行才能被3整除)。以下是修改后的代码:
import pandas as pd def process(): # 读取文件到DataFrame df = pd.read_csv("./calibration.txt", sep=' ', header=None) current_rows = len(df) # 计算需要补充的行数:如果current_rows%3是0,needed=3,此时不需要补充 needed = 3 - (current_rows % 3) if needed != 3: print(f"需要添加 {needed} 行0") # 一次性写入多行0,每行一个0 with open('./calibration.txt', 'a') as f: # 构造要写入的内容:每行是0,换行分隔 content = '\n0' * needed f.write(content) else: print("当前行数已可被3整除,无需添加") if __name__=='__main__': process() # 重新读取修改后的文件 df = pd.read_csv("./calibration.txt", sep=" ", header=None) # 重塑为3列的DataFrame df_new = pd.DataFrame(df.iloc[:, 0].values.reshape((-1, 3))) # 设置显示所有行和列 pd.set_option("display.max_rows", None, "display.max_columns", None) # 将结果保存到新文件(比如output.csv),同时打印 df_new.to_csv("output.csv", index=False, header=None) print(df_new)
关键修改点:
- 计算需要补充的行数:通过
3 - (current_rows % 3)得到需要添加的0的行数,只有当结果不等于3时(即当前行数不满足被3整除)才执行添加操作。 - 批量写入:一次性构造好所有要添加的行内容,避免多次打开文件,提升效率。
- 修正输出逻辑:给
to_csv指定输出文件名(如output.csv),确保结果正确保存,同时保留打印输出的功能。
内容的提问来源于stack exchange,提问作者Khurram Shehzad8
相关产品推荐
相关产品推荐

