如何将CSV文件作为参数传递给python文件

时间:2019-08-08 06:15:23

标签: python

我正在尝试将csv文件作为python文件中的参数提供, 在这里,我想将features.csv文件作为参数传递。 有什么想法如何做到的?

def read_csv_file():
with open(r'features.csv', 'r') as csvFile:
    checker = lambda i: bool(i and i.strip())
    raw_file = csv.reader(csvFile)
    header = next(raw_file)
    folders = next(
        {
            header[0]: [row[0]],
            'Feature Name': list(filter(checker, row[:1])),
            'Child folder': list(filter(checker, row[1:]))
        } for row in raw_file
    )
    raw_folder_list = list(folders.values())
    folder_list = sum(raw_folder_list, [])
    return folder_list

2 个答案:

答案 0 :(得分:1)

def read_csv_file(file_name):
    with open(file_name, 'r') as csvFile:
        checker = lambda i: bool(i and i.strip())
        raw_file = csv.reader(csvFile)
        header = next(raw_file)
        folders = next(
        {
            header[0]: [row[0]],
            'Feature Name': list(filter(checker, row[:1])),
            'Child folder': list(filter(checker, row[1:]))
        } for row in raw_file
        )
        raw_folder_list = list(folders.values())
        folder_list = sum(raw_folder_list, [])
        return folder_list

具有以下文件名的调用函数:read_csv_file('features.csv')

答案 1 :(得分:0)

我认为您正在尝试将filename作为命令行参数,以便可以重复使用此代码来打开所有类似的csv文件。

在这种情况下,您可以使用argparse

或者简单地

>> python read_csv.py filename.csv

在read_csv.py

import sys
first_arg = sys.argv[1]
print(first_arg)
# filename.csv

我建议使用argparse,因为它更健壮。