Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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
根据检查条件在csv输出文件的每行末尾添加新变量的Python脚本_Python_Csv - Fatal编程技术网

根据检查条件在csv输出文件的每行末尾添加新变量的Python脚本

根据检查条件在csv输出文件的每行末尾添加新变量的Python脚本,python,csv,Python,Csv,我想编写一个python脚本,在CSV文件中由脚本的初始部分生成的行的末尾添加新值。 CSV文件的值如下所示 name,isactive,ful_name,emailaddress rajesh,active,Rajesh Pidikiti,myemail@corp.####.com james,active,James wood,mail@mail.com 我需要考虑每一行的名称,并检查用户是否有管理员特权(通过运行一个卷曲命令)或不。如果用户是admin,则在行(新列)末尾添加admin作

我想编写一个python脚本,在CSV文件中由脚本的初始部分生成的行的末尾添加新值。 CSV文件的值如下所示

name,isactive,ful_name,emailaddress
rajesh,active,Rajesh Pidikiti,myemail@corp.####.com
james,active,James wood,mail@mail.com
我需要考虑每一行的名称,并检查用户是否有管理员特权(通过运行一个卷曲命令)或不。如果用户是admin,则在行(新列)末尾添加admin作为新值。如果没有,则添加用户作为新值

输出将如下所示

name,isactive,ful_name,emailaddress,isadmin 
rajesh,active,Rajesh Pidikiti,myemail@corp.####.com,admin 
james,active,James wood,mail@mail.com,user
我尝试过创建函数和for循环,但没有成功。我可以将结果附加到输入或创建新的输出文件

这是我到目前为止写的

def to_add_new_col(input_file,output_file)
        with open(input_file, 'rb') as infile:
                with open(output_file, 'wb') as outfile:
                        reader = csv.reader(infile, lineterminator='\n')
                        writer = csv.writer(outfile, lineterminator='\n')

                        check_and_add(reader, writer)

def check_and_add(reader, writer)
        for i in reader:
                for field in (i)
                        if(curl_result(field):
                                i=admin
                        else
                                i=user

                writer.writerow(i)

您可以使用CSV读写器的默认设置。首先需要读取标题行,添加新的列标题,然后将其写入输出CSV文件。然后,对于输入CSV文件中的每一行,将
is_admin()
函数传递给一个要测试的用户,该函数返回
admin
user
(我创建了一个虚拟函数,它只测试用户名的字符数是偶数还是奇数)。然后可以将此返回值添加到行中的值列表中,并写入输出

如果您不确定这是如何工作的,请添加打印语句以提供帮助。例如,添加
打印(行)

这将为您提供一个
output.csv
文件,其中包含:

name,isactive,ful\u name,emailaddress,isadmin
rajesh,活跃,rajesh Pidikiti,myemail@corp.####.com,管理员
詹姆斯,活跃,詹姆斯·伍德,mail@mail.com使用者

请显示您以前尝试过的代码好吗?导入csv def以添加新的col(输入文件,输出文件),打开(输入文件,'rb')作为填充:打开(输出文件,'wb')作为输出文件:reader=csv.reader(infle,lineterminator='\n')writer=csv.writer(outfile,lineterminator='\n')检查并添加(reader,writer)def检查和添加(reader,writer)for i in reader:for(i)if(curl_)result(field)中的字段:i=admin else i=user writer.writerow(i)这是我到目前为止写的。
import csv

def is_admin(user):
    """ Test if user is admin (replace with your curl test) """
    return 'admin' if len(user) % 2 == 0 else 'user'


with open('input.csv', newline='') as f_input, open('output.csv', 'w', newline='') as f_output:
    csv_reader = csv.reader(f_input)
    csv_writer = csv.writer(f_output)
    csv_writer.writerow(next(csv_reader) + ['isadmin'])

    for row in csv_reader:
        csv_writer.writerow(row + [is_admin(row[0])])