Python 如何提取一个txt数并传递给数组
我有一个包含10行的.txt,如下所示:Python 如何提取一个txt数并传递给数组,python,Python,我有一个包含10行的.txt,如下所示: [-3 -4 -5 -6 -7], 0 import sys with open(sys.argv[1], 'r') as f: contents = f.read() print(contents) 我想提取[…]之间的数字,并将其传递给整数数组,我读取.txt的方式如下: [-3 -4 -5 -6 -7], 0 import sys with open(sys.argv[1], 'r') as f: contents
[-3 -4 -5 -6 -7], 0
import sys
with open(sys.argv[1], 'r') as f:
contents = f.read()
print(contents)
我想提取[…]之间的数字,并将其传递给整数数组,我读取.txt的方式如下:
[-3 -4 -5 -6 -7], 0
import sys
with open(sys.argv[1], 'r') as f:
contents = f.read()
print(contents)
我需要在昏迷前分开这个部分?
有什么功能可以做到这一点?
我该怎么办?试试这样的东西,但有点肉味:
with open('your_file.txt', 'r') as f:
new_list = [item.split(',')[0][1:-1].split() for item in f.readlines()]
print(new_list)
我的错,没有看到文件会像参数一样提供,那么
#!/bin/python3
from sys import argv
with open(argv[1], 'r') as f:
new_list = [item.split(',')[0][1:-1].split() for item in f.readlines()]
print(new_list)
顺便说一句,regex解决方案似乎也不错:
with open(argv[1], 'r') as f:
new_list = [re.findall('-?\d+', item.split(',')[0]) for item in f.readlines()]
print(new_list)
这应该做到:
import sys
with open(sys.argv[1], 'r') as f:
contents = f.read()
arrays = []
for line in contents.split('\n'):
array_string = line.split(',')[0]
array = [int(i) for i in array_string[1:-1].split()]
arrays.append(array)
根据您的示例,这将返回:
arrays
[[-3, -4, -5, -6, -7]]
test=“[-3-4-5-6-7],0”
#在“,”上拆分
test=test.split(“,”)
#删除“[”和“]”并在空白处拆分
res=test[0].lstrip(“[”).rstrip(“]).split(“”)
#是否将独立值添加到列表中?
res.append(测试[1])
#将值强制转换为int
res=[int(x)表示以res表示的x]
#把结果打印出来
打印(res)
结果:
[3,-4,-5,-6,-7,0]
您可以用一行将数据读取到列表中,如下所示
import sys
data = [ [ int(field) for field in row.split(sep=",")[0][1:-1].split() ] for row in open(sys.argv[1])]
您将获得例如:
[[-3, -4, -5, -6, -7]]
读取模式默认为打开
,因此您可以忽略它。
你看一下文件的每一行。
对于每一行,使用分隔符拆分该行。
左侧部分可以简单地拆分为一个列表。
此列表包含可以转换为int的字符串字段。请尝试以下操作:
import sys
import re
with open(sys.argv[1], 'r') as f:
contents = f.read()
arrays = []
for line in contents.split('\n'):
string = line.split(',')[0]
arrays.append(re.findall("[+-]?\d+(?:\.\d+)?",string))
您可以将文件逐行读取到变量中,我们将其称为
line
,然后像这样使用split
函数:array\u str,other\u num=line.split(',')
。然后,您可以使用array_str[1:-1].split()拆分左侧的数字,因为默认情况下,拆分将对空白进行操作。[1:-1]
用于修剪支架。这将为您提供一个以字符串形式包含数字的列表。欢迎使用堆栈溢出!请拿起,阅读,和,并提供一个。“为我实现此功能”是本网站的主题。你必须做一个诚实的尝试,然后问一个关于你的算法或技术的具体问题。我很确定我没有要求任何人为我编写代码,但是如果有方法,如果有一些函数可以做到这一点。即使你没有明确要求人们为你编写代码,那也是你实际要求的“我该怎么办?请阅读我分享的链接,特别是关于一个好问题的链接。好的问题包括你自己的尝试和研究,因为在一天结束时,这是你的问题,所以你需要努力解决它。此外,在你的问题中包括你已经尝试过的,让回答的人看到什么不起作用,这样他们就不需要花时间尝试同样的事情。或者,如果您的实现中有一个小错误,他们可以指出。这在和中进行了总结