在Python中,调用
temp = open(filename,'r').readlines()
Run Code Online (Sandbox Code Playgroud)
得到一个列表,其中每个元素都是文件中的一行.它有点愚蠢但仍然:readlines()还为每个元素写了换行符,这是我不希望发生的.我怎么能避免呢?
我试图将文本文件的行读入python中的列表或数组.我只需要能够在创建后单独访问列表或数组中的任何项目.
文本文件的格式如下:
0,0,200,0,53,1,0,255,...,0.
Run Code Online (Sandbox Code Playgroud)
如果在...上面,那么实际的文本文件有数百或数千个项目.
我正在使用以下代码尝试将文件读入列表:
text_file = open("filename.dat", "r")
lines = text_file.readlines()
print lines
print len(lines)
text_file.close()
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
['0,0,200,0,53,1,0,255,...,0.']
1
Run Code Online (Sandbox Code Playgroud)
显然,它将整个文件读入只有一个项目的列表,而不是单个项目的列表.我究竟做错了什么?
我有一个简单的程序,它带有一个ID号,并为匹配ID的人打印信息.信息存储在.dat文件中,每行一个ID号.
问题是我的程序也在从文件中读取换行符\n.我尝试了'name'.split()方法,但这似乎不适用于列表.
我的节目:
from time import localtime, strftime
files = open("grades.dat")
request = open("requests.dat", "w")
lists = files.readlines()
grades = []
for i in range(len(lists)):
grades.append(lists[i].split(","))
cont = "y"
while cont == "y" or cont == "Y":
answer = raw_input("Please enter the Student I.D. of whom you are looking: ")
for i in range(len(grades)):
if answer == grades[i][0]:
print grades[i][1] + ", " + grades[i][2] + (" "*6) + grades[i][0] + (" "*6) + grades[i][3]
time = strftime("%a, %b %d …Run Code Online (Sandbox Code Playgroud) 说我有一个空列表 myNames = []
如何打开每行上带有名称的文件并将每个名称读入列表?
喜欢:
> names.txt
> dave
> jeff
> ted
> myNames = [dave,jeff,ted]
Run Code Online (Sandbox Code Playgroud) 我有一个小问题.我注意到,由于某种原因,当我+在连接两个变量时使用符号时,Python会自动使用换行符.
for i in range(o):
a = Before.readline()
b = After.readline()
if a == b:
lines.append(" \n")
else:
plus = a + b
lines.append(a + b)
Final.writelines(lines)
Run Code Online (Sandbox Code Playgroud)
这将导致列表中包含这样的值(注意'B\nC\n')
[' \n', ' \n', ' \n', ' \n', ' \n', ' \n', ' \n', ' \n', ' \n', ' \n', ' \n', ' \n',
' \n', ' \n', ' \n', ' \n', ' \n', ' \n', ' \n', ' \n', ' \n', ' \n', ' \n', ' \n', …Run Code Online (Sandbox Code Playgroud)