我正在深入和广度地搜索Python中的顶点列表。我试图读取.txt文件,如下所示:
50
60
45
12
68
21
13
24
我的代码如下:
def readFile(x):
fin = open(x, 'r')
readline = fin.read()
x,y = [], []
for line in readline:
row = line.split()
x.append(row[0])
print(x)
y.append(row[1])
不幸的是,当代码将txt文件读入Python时,这只会将6读入程序并终止说该索引超出y的范围。在我的.txt文件中,除了每组点的末尾之外没有空格或\ n字符。
关于为什么要添加所有这些额外的空格和\ n字符的想法?
旁注:当我使用sys.stdout.write(line)
时,输出正是我正在寻找的,但我无法将其编入索引。
with open(x) as fin:
for line in fin:
sys.stdout.write(line)
非常感谢任何帮助!
答案 0 :(得分:0)
def readFile(x):
with open(x, 'r') as fin:
x, y = [], []
for line in fin:
row = line.strip()
x.append(row[0])
y.append(row[1])
print(x,y)
readFile('a.txt')
编辑: 你必须使用readlines()或read()。split()[都将内容读入内存]或者你可以只迭代对象[这将一次只保留一行]
您必须使用条带删除不分割的额外白色字符
CREATE TABLE searches(
searchID INT UNSIGNED NOT NUL,
userID INT UNSIGNED NOT NULL,
searchParams VARCHAR(100) DEFAULT NULL,
creationDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX(userID, searchID)
)ENGINE MyISAM;
输出: ['5','6','4','1','6','2','1','2'] ['0','0','5','2', '8','1','3','4']
答案 1 :(得分:0)
你很近,删除readline = fin.read()
;这是读第一个'6'。
然后,将for line in readline:
改为for line in fin:
最后,您的文件似乎有空行,因此您必须跳过它们:
line = line.strip()
if line != '':
row = line
x.append(row[0])
print(x)
y.append(row[1])
答案 2 :(得分:0)
因为你没有足够的答案,所以这是另一个!
{{1}}