《python数据分析基础》2.1.1书中的错误IndexError: list index out of range

按照书中的教程一步一步结果报错:IndexError: list index out of range
网上查资料发现是书中教程命令行代码的问题

项目文件代码

#!/usr/bin/env python3
import sys

input_file = sys.argv[1]
output_file = sys.argv[2]

with open(input_file, 'r', newline='') as filereader:
	with open(output_file, 'w', newline='') as filewriter:
		header = filereader.readline()
		header = header.strip()
		header_list = header.split(',')
		print(header_list)
		filewriter.write(','.join(map(str,header_list))+'\n')
		for row in filereader:
			row = row.strip()
			row_list = row.split(',')
			print(row_list)
			filewriter.write(','.join(map(str,row_list))+'\n')
在这里插入代码片

文件名1csv_read_with_simple_parsing_and_write.py
命令行运行代码及报错显示
在这里插入图片描述

首先分析下 sys.argv函数的意思
CDSN有大佬已经解释过,这里简单说下
sys.argv表示一个列表,
sys.argv[0]表示列表第一个内容,这个内容是固定的,为运行文件名和文件所在的位置
sys.argv[1], sys.argv[2]很好理解分别为列表的第二个内容和第三个内容

然后是一个理解的重点, sys.argv这个列表在哪里,其实就是命令行代码你输入的内容,在本例中为:

D:\python_work_2>python 1csv_read_with_simple_parsing_and_write.py
 supplier_data.csv\output_files\1output.csv

sys.argv[0]为D:\python_work_2>python1csv_read_with_simple_parsing_and_write.py

sys.argv[1]应该为supplier_data.csv
sys.argv[2]应该为output_files\1output.csv

至此我们应该知道了应该是命令窗口的代码出错
首先supplier_data.csv后面的’\‘是多余的
其次output_files\1output.csv表示在项目文件目录中的output_files文件夹中的1output.csv文件,但是python无法自动创建文件夹,所以应先在1csv_read_with_simple_parsing_and_write.py文件所在的目录中创建output_files文件夹

命令窗口最终代码为D:\python_work_2>python 1csv_read_with_simple_parsing_and_write.py supplier_data.csv output_files\1output.csv
输出结果为
《python数据分析基础》2.1.1书中的错误IndexError: list index out of range_第1张图片

你可能感兴趣的:(《python数据分析基础》2.1.1书中的错误IndexError: list index out of range)