微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从txt文件读取值并传递函数

如何解决从txt文件读取值并传递函数

我有一个 txt 文件,其值 x y 列为

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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?