如何在Python中将TXT文件内容导入数组?
解决TXT转数组及Numpy导入错误的方案
一、先搞定Numpy导入错误
出现Import "numpy" could not be resolved的原因很简单:你的Python环境里没装Numpy库,或者编辑器没关联到正确的环境。解决步骤:
- 打开终端/命令提示符,运行安装命令:
要是你系统里同时有Python2和Python3,换成pip install numpypip3 install numpy试试。 - 如果用了虚拟环境,先激活对应的环境再装。
- 编辑器(比如VS Code)里,确认选的Python解释器是装了Numpy的那个——一般点左下角的解释器标识就能切换。
二、把TXT转成目标数组的两种方法
方法1:纯Python原生实现(不用装任何库)
这是最省事的方法,完全满足你数千条数据的需求:
快速一次性读取
with open('dane.txt', 'r', encoding='utf-8') as f: # splitlines()自动按换行分割,还会去掉每行末尾的换行符 names = f.read().splitlines()
运行后names就是你要的格式:['Sophia', 'Emily', 'Mary', ...]
逐行读取(适合超大文件)
如果文件特别大,怕占内存,就逐行读:
names = [] with open('dane.txt', 'r', encoding='utf-8') as f: for line in f: # 清理掉换行和前后空白,跳过空行 cleaned_name = line.strip() if cleaned_name: names.append(cleaned_name)
方法2:用Numpy实现
等Numpy装好了,用下面的代码就行:
import numpy as np # 直接读取成字符串数组 names = np.loadtxt("dane.txt", dtype=str) # 要是文件里有空行或者异常数据,用genfromtxt兼容性更好 names = np.genfromtxt("dane.txt", dtype=str, skip_header=0, skip_footer=0)
得到的是Numpy数组,要是需要转成普通Python列表,加个.tolist()就行:names.tolist()
三、关于你现有读取代码的说明
你写的这段代码是对的:
with open('dane.txt') as x: contents = x.read()
它会把整个文件读成一个带换行的字符串,比如"Sophia\nEmily\nMary\n..."。只要用splitlines()分割一下,就能转成你要的数组。
内容的提问来源于stack exchange,提问作者Felipe
相关产品推荐
相关产品推荐

