如何使用 python 从文本文件中读取数值数据并将其保存到变量中

How to Read Numeric Data From Text file and save it to a variable using python

我正在从事一个从文本文件中获取数据的项目,该值需要存储在一个变量中。但是下面的代码不能正常工作。有时有效,有时有效 returns

ValueError: invalid literal for int() with base 10: ''

以下是使用的代码:

def main():
    # Txt read
    global id
    input = open('data.txt', 'r')
    lines = input.readlines()
    i = 0
    for line in lines:
        i += 1
        id = int(line)

main()
print id

数据将在单个 int 后跟文本文件中的新行。

如有任何帮助,我们将不胜感激。

换行符“\n”引起错误。

def main():
    # Txt read
    global id
    data = open('data.txt', 'r').read()
    data = data+'0'
    data = data.replace('\n','+0+')
    id = eval(data)


main()
print(id)

先说几件事

不要将 input 用作变量,因为它是 python 中的 built-in 函数。这不是一个好的做法。

此外,id 也恰好是一个 built-in 函数,所以也要避免

此外,我建议将整个文件读取为字符串,并根据 \n 进行拆分。这将帮助您去除末尾的额外换行符(如果您愿意,也可以开始)

你可以这样使用:

def main():
# Txt read

    input1 = open('text.txt', 'r').read().strip()
    l = input1.split("\n")
    #convert to int
    ll = [int(s) for s in l]
    print(ll)

main()

在您的代码中,您将仅获得文件中的最后一个值以获取所有值使用列表并将它们存储在列表中,如果要计算则不需要 ii 的增量使用的值总数 len(id) 试试下面的代码

def main():
  # Txt read
  global id
  id=[]
  input = open('data.txt', 'r')
  lines = input.readlines()
  for line in lines:
    if line.strip(): #Checking Non-Empty Line
      id.append(int(line.strip()))
main()
print id
print "Total Valuse: "+str(len(id))