我正在尝试将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
答案 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,因为它更健壮。