我的主要列表文件是CSV格式,分隔符是逗号,并且主要数据的数据高达50000.该文件也有随机换行符。
问题:49999是文件中最大的数字,但primes_list
中最大的元素是9973!
[稍后Primes
列表中的每个素数都将转换为long
类型,并使用for循环中的值。 for prime in Primes
]
因此我的问题是我在使用下面的最小python代码时出错了吗?
Python版本是2.76,在Linux Mint 17上运行。
编辑 - 评论后更正的代码;
import csv
def factorise()
primes=[]
with open(primefile,'r') as csvfile:
primes_data=csvfile.read().replace('\n','').split(',')
primes=primes_data
print('Number of elements is: '+str(len(primes)))
print('First element is: '+primes[0])
print('Last element is: '+primes[-1])
csvfile.close()
print('Largest element is: '+max(primes))
输出示例;
Number of elements is: 5134
First element is: 2
last element is: 49999
Largest element is: 9973
答案 0 :(得分:0)
那么9973有什么特别之处?你看过这个文件了吗?那里有一条新线?
无论如何,你可能想要的是csv.reader()而不是标准的IO.read()
import csv
def factorise():
first_element = int()
total_list = list()
with open("primefile.csv", "r") as file:
primes = csv.reader(file)
for line in primes:
if not first_element:
print('First element is: %s' % line[0])
first_element = line[0]
total_list.extend(line)
print('Number of elements is: %s' % len(total_list))
print('Last element is: %s' % line[-1])
if __name__ == "__main__":
factorise()
我没有你的来源所以我无法测试这个,但它似乎应该有用。
编辑:修复了几个愚蠢的错误