在Python中加载文本数据

2024-04-25 17:23:12 发布

您现在位置:Python中文网/ 问答频道 /正文

如果给我一个文本数据,其中包含一个数字列表,但没有指定哪个数字引用哪个变量,与excel格式不同,如何使用Python将这些数字作为数据加载?你知道吗

很抱歉问你这个业余问题,我刚被介绍给python。你知道吗


Tags: 数据文本列表格式数字excel业余
3条回答

嗨,安东尼

解析文件取决于它使用的格式。假设您的文件是一个由新行分隔的数字序列,下面我将继续:

首先,你必须打开你的文件。为此,可以使用标准的^{}函数。你知道吗

open将要处理的文件的路径作为第一个参数,第二个参数是模式,可以是'r'读取,'w'覆盖,'a'将文本以及二进制变量附加到文件中(默认值为'r')。不是说open的其他参数。

number_file = open('numbers.txt')  # implicitly read mode

numbers = []  # the list in which we're going to store all our numbers

# iterates over each line of the file
for line in number_file:
    n = int(line)      # parsing the string into an integer  
    numbers.append(n)  # adding the number to your list

number_file.close()

最酷的是,open也是我们在Python中所称的context manager。在这个行话背后隐藏着一个非常简单的概念,即在给定代码之前和之后执行操作。你知道吗

with关键字允许您使用上下文管理器:

with open('numbers.txt') as number_file:
    for line in number_file:
        n = int(line) 
        numbers.append(n)

如果您没有注意到,就不必使用上下文管理器关闭文件,因为open正在处理这个问题。你知道吗

这就是为什么建议使用此方法而不是以前的方法:您不能忘记关闭文件,因此,如果您打开文件两次(例如,如果您要修改和保存序列化对象),则不太可能出现操作系统错误。你知道吗

一般来说,您必须自己过滤数据,找出每个值的位置,以及应该应用于哪个变量。但是有很多标准格式python可以直接读取,并且可以为您做很多事情。例如,如果您的文本数据是JSON格式的,那么它就像导入JSON一样简单,variable=json.load文件(打开('文件数据.json','r'))

但是如果它不是任何已知的格式,python可以读取,那么您必须要么将它转换为已知的格式,要么自己动手。有一些软件包可以帮助您“解析”文本,以便更轻松地处理某人创建了一个完整的文本列表:https://github.com/webmaven/python-parsing-tools

这就是为什么每个人都问你数据的格式是什么。如果它是一种已知的格式,您可能可以使用它,但是如果它是某种特殊的自定义格式,那么您需要一个特殊的解析器,您必须自己编写,或者以某种方式将该数据转换为不同的格式。你知道吗

file = 'data.txt'
print(open(file).read(), '\n')
for line in open(file):
    print('\nline', line)
    for number in line.split():
        print(int(number))

11 22 33
1 2 3
0 


line 11 22 33

11
22
33

line 1 2 3

1
2
3

line 0
0

相关问题 更多 >