Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中从文本文件读取逗号分隔的值_Python - Fatal编程技术网

在python中从文本文件读取逗号分隔的值

在python中从文本文件读取逗号分隔的值,python,Python,我有一个由100条记录组成的文本文件,比如 fname,lname,subj1,marks1,subj2,marks2,subj3,marks3. 我需要在python中提取并打印lname和marks1+marks2+marks3。我该怎么做? 我是python的初学者 请帮忙 当我使用split时,我得到一个错误 TypeError:无法将“type”对象隐式转换为str 代码是 import sys file_name = sys.argv[1] file = open(file_nam

我有一个由100条记录组成的文本文件,比如

fname,lname,subj1,marks1,subj2,marks2,subj3,marks3.
我需要在python中提取并打印lname和marks1+marks2+marks3。我该怎么做?
我是python的初学者

请帮忙

当我使用split时,我得到一个错误

TypeError:无法将“type”对象隐式转换为str

代码是

import sys
file_name = sys.argv[1]
file = open(file_name, 'r')


for line in file:
    fname = str.split(str=",", num=line.count(str))
    print fname

注意:它不是经过测试的代码。但它试图解决你的问题。请试一试

import csv
with open(file_name, 'rb') as csvfile:
    marksReader = csv.reader(csvfile)
    for row in marksReader:
        if len(row) < 8:  # 8 is the number of columns in your file.
            # row has some missing columns or empty
            continue

        # Unpack columns of row; you can also do like fname = row[0] and lname = row[1] and so on ...
        (fname,lname,subj1,marks1,subj2,marks2,subj3,marks3) = *row

        # you can use float in place of int if marks contains decimals
        totalMarks = int(marks1) + int(marks2) + int(marks3)

        print '%s %s scored: %s'%(fname, lname, totalMarks)

    print 'End.'
导入csv
打开(文件名为“rb”)作为csvfile:
marksReader=csv.reader(csvfile)
对于marksReader中的行:
如果len(row)<8:#8是文件中的列数。
#行中缺少一些列或为空
持续
#解包行的列;您还可以执行fname=row[0]和lname=row[1]等操作。。。
(fname、lname、SubC1、marks1、SubC2、marks2、SubC3、marks3)=*行
#如果标记包含小数,则可以使用float代替int
totalMarks=int(marks1)+int(marks2)+int(marks3)
打印“%s%s”已评分:%s%%(fname、lname、totalMarks)
打印“结束”

注意:它不是经过测试的代码。但它试图解决你的问题。请试一试

import csv
with open(file_name, 'rb') as csvfile:
    marksReader = csv.reader(csvfile)
    for row in marksReader:
        if len(row) < 8:  # 8 is the number of columns in your file.
            # row has some missing columns or empty
            continue

        # Unpack columns of row; you can also do like fname = row[0] and lname = row[1] and so on ...
        (fname,lname,subj1,marks1,subj2,marks2,subj3,marks3) = *row

        # you can use float in place of int if marks contains decimals
        totalMarks = int(marks1) + int(marks2) + int(marks3)

        print '%s %s scored: %s'%(fname, lname, totalMarks)

    print 'End.'
导入csv
打开(文件名为“rb”)作为csvfile:
marksReader=csv.reader(csvfile)
对于marksReader中的行:
如果len(row)<8:#8是文件中的列数。
#行中缺少一些列或为空
持续
#解包行的列;您还可以执行fname=row[0]和lname=row[1]等操作。。。
(fname、lname、SubC1、marks1、SubC2、marks2、SubC3、marks3)=*行
#如果标记包含小数,则可以使用float代替int
totalMarks=int(marks1)+int(marks2)+int(marks3)
打印“%s%s”已评分:%s%%(fname、lname、totalMarks)
打印“结束”

注意:它不是经过测试的代码。但它试图解决你的问题。请试一试

import csv
with open(file_name, 'rb') as csvfile:
    marksReader = csv.reader(csvfile)
    for row in marksReader:
        if len(row) < 8:  # 8 is the number of columns in your file.
            # row has some missing columns or empty
            continue

        # Unpack columns of row; you can also do like fname = row[0] and lname = row[1] and so on ...
        (fname,lname,subj1,marks1,subj2,marks2,subj3,marks3) = *row

        # you can use float in place of int if marks contains decimals
        totalMarks = int(marks1) + int(marks2) + int(marks3)

        print '%s %s scored: %s'%(fname, lname, totalMarks)

    print 'End.'
导入csv
打开(文件名为“rb”)作为csvfile:
marksReader=csv.reader(csvfile)
对于marksReader中的行:
如果len(row)<8:#8是文件中的列数。
#行中缺少一些列或为空
持续
#解包行的列;您还可以执行fname=row[0]和lname=row[1]等操作。。。
(fname、lname、SubC1、marks1、SubC2、marks2、SubC3、marks3)=*行
#如果标记包含小数,则可以使用float代替int
totalMarks=int(marks1)+int(marks2)+int(marks3)
打印“%s%s”已评分:%s%%(fname、lname、totalMarks)
打印“结束”

注意:它不是经过测试的代码。但它试图解决你的问题。请试一试

import csv
with open(file_name, 'rb') as csvfile:
    marksReader = csv.reader(csvfile)
    for row in marksReader:
        if len(row) < 8:  # 8 is the number of columns in your file.
            # row has some missing columns or empty
            continue

        # Unpack columns of row; you can also do like fname = row[0] and lname = row[1] and so on ...
        (fname,lname,subj1,marks1,subj2,marks2,subj3,marks3) = *row

        # you can use float in place of int if marks contains decimals
        totalMarks = int(marks1) + int(marks2) + int(marks3)

        print '%s %s scored: %s'%(fname, lname, totalMarks)

    print 'End.'
导入csv
打开(文件名为“rb”)作为csvfile:
marksReader=csv.reader(csvfile)
对于marksReader中的行:
如果len(row)<8:#8是文件中的列数。
#行中缺少一些列或为空
持续
#解包行的列;您还可以执行fname=row[0]和lname=row[1]等操作。。。
(fname、lname、SubC1、marks1、SubC2、marks2、SubC3、marks3)=*行
#如果标记包含小数,则可以使用float代替int
totalMarks=int(marks1)+int(marks2)+int(marks3)
打印“%s%s”已评分:%s%%(fname、lname、totalMarks)
打印“结束”

如果你想这样做,你已经很接近了。这就是你想要的吗

file = open(file_name, 'r')

for line in file.readlines():
    fname = line.rstrip().split(',') #using rstrip to remove the \n
    print fname

如果你想这样做,你已经很接近了。这就是你想要的吗

file = open(file_name, 'r')

for line in file.readlines():
    fname = line.rstrip().split(',') #using rstrip to remove the \n
    print fname

如果你想这样做,你已经很接近了。这就是你想要的吗

file = open(file_name, 'r')

for line in file.readlines():
    fname = line.rstrip().split(',') #using rstrip to remove the \n
    print fname

如果你想这样做,你已经很接近了。这就是你想要的吗

file = open(file_name, 'r')

for line in file.readlines():
    fname = line.rstrip().split(',') #using rstrip to remove the \n
    print fname


你试过什么?您研究过
split()
方法吗?你知道如何读取文件吗?我试着用普通的expression@user2825406只需发布该代码,就可以了,它不必工作…导入sys file_name=sys.argv[1]file=open(file_name,'r')对于文件中的行:fname=str.split(str=“,”,num=line.count(str)),有一个标准库可以深入操作csv文件。来自裁判的更多信息。你尝试过什么?您研究过
split()
方法吗?你知道如何读取文件吗?我试着用普通的expression@user2825406只需发布该代码,就可以了,它不必工作…导入sys file_name=sys.argv[1]file=open(file_name,'r')对于文件中的行:fname=str.split(str=“,”,num=line.count(str)),有一个标准库可以深入操作csv文件。来自裁判的更多信息。你尝试过什么?您研究过
split()
方法吗?你知道如何读取文件吗?我试着用普通的expression@user2825406只需发布该代码,就可以了,它不必工作…导入sys file_name=sys.argv[1]file=open(file_name,'r')对于文件中的行:fname=str.split(str=“,”,num=line.count(str)),有一个标准库可以深入操作csv文件。来自裁判的更多信息。你尝试过什么?您研究过
split()
方法吗?你知道如何读取文件吗?我试着用普通的expression@user2825406只需发布该代码,就可以了,它不必工作…导入sys file_name=sys.argv[1]file=open(file_name,'r')对于文件中的行:fname=str.split(str=“,”,num=line.count(str)),有一个标准库可以深入操作csv文件。更多信息来自ref。