Python 从用户处获取文件行输入,从文件读取,只返回输入的用户行号上的int值
(巨蟒新手)请原谅 我如何建立代码? 请求用户输入并从文件中读取该特定行,然后只打印int值 假设我有一个文件“file.txt”作为 1Mbps 10$ 2Mbps 20$ 3Mbps 30$ 用户输入为“1” (应将第1行的值存储在变量中)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
应返回值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)]
。还有一个函数,用于获取该格式的列表并将其写入文件。