如何从python

时间:2018-05-18 07:49:04

标签: python text

我正在尝试制作一款游戏,要求我从python 3.6中的文本(.txt)文件中读取特定行。如果我只想打印线,我已经找到了一种方法。但是,我想在if语句中使用该行: 注意*文本文件名为“text”,第1行为“1”,第2行为“2”等。

file = open("text.txt", "r")

line1 = file.readline()
line2 = file.readline()
line3 = file.readline()

print(line1)
print(line2)
print(line3)

if line1 == "1":
    print("True")
else:
    print("False")
file.close()

由于打印测试,我知道它正在正确读取线条。但if语句打印为false。我不知道我做错了什么,我的研究中没有找到任何东西。

3 个答案:

答案 0 :(得分:2)

你在最后用换行符读取你的行。您的line1变量可能包含字符串'1\n'

尝试在readline后立即调用.strip()

line1 = file.readline().strip()
line2 = file.readline().strip()
line3 = file.readline().strip()

答案 1 :(得分:0)

您可以将字符串转换为整数并以此方式检查:

$user = $this->getDoctrine()->getRepository("AppBundle:User")->find(1);
$value = "Peter";
$method = "setName(".$value.")";

eval($user->$method);

/**Tried this also but same error **/
$user->{$method}

从长远来看,它可能会给你更大的灵活性......

答案 2 :(得分:0)

您也可以通过skiprows中的pandas read_csv来完成此操作。 假设你的桌子是这样的,

import numpy, pandas, time
my_table = numpy.random.random((10, 4))
numpy.savetxt("text.txt", my_table, delimiter=",")

你可以通过设置skiprows来阅读特定的行;

print(pandas.read_csv("text.txt", sep =',',header = None, skiprows =3, nrows = 1))

或将每一行分配给变量;

for i in range(len(df)):
     locals()['line'+ str(i+1)] = pandas.read_csv("text.txt", sep =',',header = None, skiprows =i, nrows = 1)
print(line1)

或只是数组值:

print(line2.values)