我想创建一个文本文件,其中包含由','分隔的正/负数字。
我想阅读此文件并将其放入data = []
。我已经编写了下面的代码,我认为它运作良好。
我想问你们是否知道更好的方法,或者是否写得好
谢谢所有
#!/usr/bin/python
if __name__ == "__main__":
#create new file
fo = open("foo.txt", "w")
fo.write( "111,-222,-333");
fo.close()
#read the file
fo = open("foo.txt", "r")
tmp= []
data = []
count = 0
tmp = fo.read() #read all the file
for i in range(len(tmp)): #len is 11 in this case
if (tmp[i] != ','):
count+=1
else:
data.append(tmp[i-count : i])
count = 0
data.append(tmp[i+1-count : i+1])#append the last -333
print data
fo.close()
答案 0 :(得分:1)
您可以使用split方法将逗号作为分隔符:
fin = open('foo.txt')
for line in fin:
data.extend(line.split(','))
fin.close()
答案 1 :(得分:0)
您可以使用split:
,而不是循环播放#!/usr/bin/python
if __name__ == "__main__":
#create new file
fo = open("foo.txt", "w")
fo.write( "111,-222,-333");
fo.close()
#read the file
with open('foo.txt', 'r') as file:
data = [line.split(',') for line in file.readlines()]
print(data)
请注意,这会返回一个列表列表,每个列表都来自一个单独的行。在您的示例中,您只有一行。如果你的文件总是只有一行,你可以只取第一个元素data [0]
答案 2 :(得分:0)
要将整个文件内容(正数和负数)放入列表,您可以使用拆分和分割线
file_obj = fo.read()#read your content into string
list_numbers = file_obj.replace('\n',',').split(',')#split on ',' and newline
print list_numbers