les做ml网站国内新闻摘抄2022年
1. 问题:
如何在txt中实现第一行的字段加一个"test",如果第二行开始有数据,在每条数据的最后加"ok"
2.条件
提供的txt文本如下
时间--地区--人口---降雨量-----
20220101--北京--200--0.5-----
20230101--成都--100--0.55-----
20230301--西宁--80--0.45-----
3.解决
3.1 方法一:
""""""
def modify_file(file_path):with open(file_path, 'r', encoding='utf-8') as file:lines = file.readlines() # 读取文件的所有行modified_lines = []for index, line in enumerate(lines):line = line.strip() # 去除行首尾的空白字符if index == 0:modified_line = line + "test\n" # 第一行字段后添加 "test"else:modified_line = line + "ok\n" # 第二行开始的每条数据末尾添加 "ok"modified_lines.append(modified_line)with open(file_path, 'w', encoding='utf-8') as file:file.writelines(modified_lines) # 将修改后的内容写回文件# 使用示例
file_path = 'b.txt' # 文件路径
modify_file(file_path)
效果如下:
3.2 方法二
"""
如何在txt中实现第一行的字段加一个"test",如果第二行开始有数据,在每条数据的最后加"ok"
"""
import osdef line_append(line:str):line = line.strip() + "OK\n"return linewith open('a.txt','r+',encoding='utf-8') as f:text = f.readlines() # # 读取文件内容,并将每行作为列表中的一个元素# 第一行加 |TESTtext[0] = text[0].strip() + "TEST\n" # 修改第一行内容,在末尾添加了 "TEST",并在行尾添加换行符# 如果第二行有数据if len(text) > 1:text[-1] = text[-1].strip() +'ok' # 如果文件有多于一行的内容,则修改最后一行,在末尾添加了 "ok"f.seek(0) # 将文件指针移动到文件开头f.truncate() # 清空文件内容f.writelines([text[0],*list(map(line_append,text[1:-1])),text[-1]]) # 将修改后的内容写入文件# 以上代码段展示了一个使用 with open 语句打开文件、读取、修改和写入文件内容的示例,其中运用了拆包、列表操作、文件指针操作和写入方法等技巧# *list 是用于拆包的语法。它的作用是将列表 list 中的元素拆分出来,作为单独的元素传递给函数或方法
【特别注意】*list 是用于拆包的语法。它的作用是将列表 list 中的元素拆分出来,作为单独的元素传递给函数或方法。
3.2.1 Python拆包语法举例
# 使用 * 运算符将可迭代对象的元素拆分为单独的参数。这对于需要将列表、元组等作为参数传递给函数或方法的场景非常有用
def add_numbers(a, b, c):return a + b + cnumbers = [1, 2, 3]result = add_numbers(*numbers)print(result) # 输出: 6