東莞網(wǎng)站建設(shè) 樂云seo小程序推廣方案
1. 問題:
如何在txt中實(shí)現(xiàn)第一行的字段加一個(gè)"test",如果第二行開始有數(shù)據(jù),在每條數(shù)據(jù)的最后加"ok"
2.條件
提供的txt文本如下
時(shí)間--地區(qū)--人口---降雨量-----
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" # 第二行開始的每條數(shù)據(jù)末尾添加 "ok"modified_lines.append(modified_line)with open(file_path, 'w', encoding='utf-8') as file:file.writelines(modified_lines) # 將修改后的內(nèi)容寫回文件# 使用示例
file_path = 'b.txt' # 文件路徑
modify_file(file_path)
效果如下:
3.2 方法二
"""
如何在txt中實(shí)現(xiàn)第一行的字段加一個(gè)"test",如果第二行開始有數(shù)據(jù),在每條數(shù)據(jù)的最后加"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() # # 讀取文件內(nèi)容,并將每行作為列表中的一個(gè)元素# 第一行加 |TESTtext[0] = text[0].strip() + "TEST\n" # 修改第一行內(nèi)容,在末尾添加了 "TEST",并在行尾添加換行符# 如果第二行有數(shù)據(jù)if len(text) > 1:text[-1] = text[-1].strip() +'ok' # 如果文件有多于一行的內(nèi)容,則修改最后一行,在末尾添加了 "ok"f.seek(0) # 將文件指針移動(dòng)到文件開頭f.truncate() # 清空文件內(nèi)容f.writelines([text[0],*list(map(line_append,text[1:-1])),text[-1]]) # 將修改后的內(nèi)容寫入文件# 以上代碼段展示了一個(gè)使用 with open 語句打開文件、讀取、修改和寫入文件內(nèi)容的示例,其中運(yùn)用了拆包、列表操作、文件指針操作和寫入方法等技巧# *list 是用于拆包的語法。它的作用是將列表 list 中的元素拆分出來,作為單獨(dú)的元素傳遞給函數(shù)或方法
【特別注意】*list 是用于拆包的語法。它的作用是將列表 list 中的元素拆分出來,作為單獨(dú)的元素傳遞給函數(shù)或方法。
3.2.1 Python拆包語法舉例
# 使用 * 運(yùn)算符將可迭代對(duì)象的元素拆分為單獨(dú)的參數(shù)。這對(duì)于需要將列表、元組等作為參數(shù)傳遞給函數(shù)或方法的場景非常有用
def add_numbers(a, b, c):return a + b + cnumbers = [1, 2, 3]result = add_numbers(*numbers)print(result) # 輸出: 6