如何解决从txt文件读取值并传递函数
20
80
70 .....
我编写了读取x和y的代码,但是我不确定自己做错了什么。
def readTruth():
with open("Truth.txt") as f:
for line in f:
x_truth,y_truth = line.split("\n")
return x_truth,y_truth
def main():
x,y = readTruth()
print(x)
if __name__ == "__main__":
main()
我只看到一个值在x中打印出来。
解决方法
您一次阅读一行。因此,您在读取第一行时无法访问第二行中的值。在这种情况下,用换行符“ \ n”分隔行将无济于事。
如果文本文件中只有2行,则可以执行以下操作:
<button href="#Teachers" class="tablinks" onclick="openContent(event,'Teachers')"> برای مدرسین</button>
<button href="#Users" class="tablinks" onclick="openContent(event,'Users')">برای کاربران</button>
<button href="#Institutes" class="tablinks" onclick="openContent(event,'Institutes')">برای آموزشگاه ها</button>
<div id="Teachers" class="tabcontent">Something</div>
<div id="Users" class="tabcontent">Something1</div>
<div id="Institutes" class="tabcontent">Something2</div>
但是我怀疑您有两个以上的值。您可以重构文本文件,以将2个值保留在同一行中,并用空格或逗号分隔。如果这样做,您的解决方案将起作用。您只需按逗号或空格进行拆分,无论您选择使用哪个定界符。
如果必须将每个数字都放在单独的行上,则您的解决方案将不起作用。您需要将结果添加到X值列表和Y值列表中:
# Note here that I am lazy and used a string here instead of text file
a_string = "1\n2"
def readTruth():
x_truth,y_truth = a_string.split("\n")
return x_truth,y_truth
x,y = readTruth()
print(x) # 1
print(y) # 2
基于问题发布者的评论,我认为它们在文本文件中的每个数字之间都有一个空白行。这意味着每个数字都在奇数行上。添加到我之前的示例中的快速解决方案是跳过空白行:
# truth.txt:
# 1
# 2
# 3
# 4
#
f = open("truth.txt","r")
def readTruth():
counter = 1
X_vals = []
Y_vals = []
for line in f.readlines():
# If it is an even numbered line,add to Y_vals
if counter % 2 == 0:
Y_vals.append(line.strip("\n"))
# Otherwise it is an odd numbered line,so add to X_vals
else:
X_vals.append(line.strip("\n"))
counter+=1
return X_vals,Y_vals
x,y = readTruth()
print(x) # ['1','3']
print(y) # ['2','4']
,
我们获得X和Y的值:
def readTruth():
with open("Truth.txt") as f:
for line in f:
x_truth,y_truth = line.split("\n")
return x_truth,y_truth
def main():
x,y = readTruth()
print("Var_X = "+ str(x[0]))
print("Var_Y = "+ str(x[1]))
您可以将变量放在每个X和Y的列表中
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。