如何替换文本文件中每行空格前的第一个数字

我的文件如下所示:


12.32 1:34 2:49 5:21 29:98

13.53 1:23 2:82 5:23 29:45

51.92 1:23 2:54 5:54 29:63

12.42 1:34 2:43 5:32 29:32

我试图用另一个数字替换每行中的每个第一个数字。所以输出会像


21.33 1:34 2:49 5:21 29:98

16.23 1:23 2:82 5:23 29:45

93.12 1:23 2:54 5:54 29:63

18.76 1:34 2:43 5:32 29:32 

什么是好的方法?


我试着指向号码


with open('file.txt', 'r') as file:

    line = file.readline()

    line[0]

但它只给了我第一个字符,而不是整个数字。非常感谢!


叮当猫咪
浏览 278回答 3
3回答

森栏

您可以使用以下方法来实现这一点:-data = Nonewith open('file.txt', 'r') as file:    data = file.read()def process_line_item(x):    index = x[0]    line_str = x[1]    new_first_value = [str(x[0])] # you can put here new value depending on line index    return ' '.join(new_first_value + x[1].split(' ')[1:])new_data = '\n'.join(list(map(process_line_item, enumerate(data.split('\n')))))with open('new_file.txt', 'w') as file:    file.write(new_data)file.txt12.32 1:34 2:49 5:21 29:9813.53 1:23 2:82 5:23 29:4551.92 1:23 2:54 5:54 29:6312.42 1:34 2:43 5:32 29:32new_file.txt0 1:34 2:49 5:21 29:981 1:23 2:82 5:23 29:452 1:23 2:54 5:54 29:633 1:34 2:43 5:32 29:32

牛魔王的故事

您可以使用该csv模块delimiter=" ":from csv import readerwith open('file.txt', 'r') as file:    csv_reader = reader(file, delimiter=" ")    for row in csv_reader:        row[0] = '??.??'        print(row)哪个输出['??.??', '1:34', '2:49', '5:21', '29:98']['??.??', '1:23', '2:82', '5:23', '29:45']...请注意,您的数字将是字符串。您可能需要将它们转换为浮点数:floats = [float(item) for item in row]如果您需要将更改写入文件,您可以类似地使用csv.writer.

宝慕林4294392

这段代码应该可以解决问题,但是它可能有点错误,可能需要稍微调整和测试。我希望它有帮助。with open('file.txt', 'r') as file:    file_content = file.read()    list_content = [letter for letter in file_content]    num_length = 0    for i, char in enumerate(list_content):        num_length += 1        if list_content[i - 1] == '\n':            num_length = 0        elif char == ' ':            start_index = i - num_length            for _ in range(num_length + 1):                list_content.pop(start_index)            list_content.insert(start_index, your_new_number)    out_text = ''.join(list_content)with open('file.txt', 'w+') as file:    file.write(out_text)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python