Python 从用户处获取文件行输入,从文件读取,只返回输入的用户行号上的int值

Python 从用户处获取文件行输入,从文件读取,只返回输入的用户行号上的int值,python,Python,(巨蟒新手)请原谅 我如何建立代码? 请求用户输入并从文件中读取该特定行,然后只打印int值 假设我有一个文件“file.txt”作为 1Mbps 10$ 2Mbps 20$ 3Mbps 30$ 用户输入为“1” (应将第1行的值存储在变量中) 应返回值10假设它们是行分隔的,则创建读取文件函数: import re def parse_line(line): pattern = r"^(\d+)Mbps (\d+)\$" return tuple(map(int, re.se

(巨蟒新手)请原谅 我如何建立代码? 请求用户输入并从文件中读取该特定行,然后只打印int值

假设我有一个文件“file.txt”作为 1Mbps 10$ 2Mbps 20$ 3Mbps 30$

用户输入为“1” (应将第1行的值存储在变量中)
应返回值10

假设它们是行分隔的,则创建读取文件函数:

import re

def parse_line(line):
    pattern = r"^(\d+)Mbps (\d+)\$"
    return tuple(map(int, re.search(pattern, line)))

def read_file(filename):
    with open(filename, "r") as f:
        return [parse_line(line) for line in f]
def row_to_str(row):
    mbps, price = row
    return f"{mbps}Mbps {price}$"

def write_file(filename, data):
    with open(filename, "w") as f:
        f.write("\n".join(row_to_str(row) for row in data))
和写文件功能:

import re

def parse_line(line):
    pattern = r"^(\d+)Mbps (\d+)\$"
    return tuple(map(int, re.search(pattern, line)))

def read_file(filename):
    with open(filename, "r") as f:
        return [parse_line(line) for line in f]
def row_to_str(row):
    mbps, price = row
    return f"{mbps}Mbps {price}$"

def write_file(filename, data):
    with open(filename, "w") as f:
        f.write("\n".join(row_to_str(row) for row in data))
现在,您可以按如下方式使用它们:

filename = "file.txt"
data = read_file(filename)
mbps = int(input("Input desired mbps: "))
data.append((mbps, mbps * 10))
write_file(filename, data)

我建议创建一个函数,将文件读入一个列表,如
[(1,10)、(2,20)、(3,30)]
。还有一个函数,用于获取该格式的列表并将其写入文件。