Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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中正确读取带有argparse的文件_Python_Csv_Argparse - Fatal编程技术网

如何在python中正确读取带有argparse的文件

如何在python中正确读取带有argparse的文件,python,csv,argparse,Python,Csv,Argparse,我创建了一个脚本,该脚本读取csv文件数据,并在进行一些计算后显示。当我在不使用argparse的情况下运行脚本时,它会提供正确的数据,但当我使用argparse运行脚本时,它会更改csv文件中的数字顺序 以下是我的脚本代码: import csv import argparse parser = argparse.ArgumentParser(description='Calculate values from a csv file') parser.add_argument("path",

我创建了一个脚本,该脚本读取csv文件数据,并在进行一些计算后显示。当我在不使用argparse的情况下运行脚本时,它会提供正确的数据,但当我使用argparse运行脚本时,它会更改csv文件中的数字顺序

以下是我的脚本代码:

import csv
import argparse

parser = argparse.ArgumentParser(description='Calculate values from a csv file')
parser.add_argument("path", type=str, help='Transactions amounts')
args = parser.parse_args()

def csv_data(path):
    with open(path) as csv_file:
        readCSV = csv.DictReader(csv_file)

        for line in readCSV:
            col_from = line['from']
            col_to = line['to']
            col_ammount = line['amount']
            from_amount = int(float(col_ammount.lstrip('$').replace(',', ''))) - int(
                float(col_ammount.lstrip('$').replace(',', '')))
            to_amount = 0 + int(float(col_ammount.lstrip('$').replace(',', '')))
            print(col_from, '$'+str(from_amount), col_to, '$'+str(to_amount))

csv_data(args.path)
我希望使用以下格式的命令行正确运行此脚本:

script.py csv file path

我真的不明白使用argparse(或一般的argparse)会如何改变正在使用的文件中的数字序列。是否确实指定了正确的文件/与添加argparse之前相同的文件?是的,没有argparse,所有事情都可以正常工作,但当我使用argparse时,它更改了csv文件中的数字顺序。如果要调试以确保您正在读取的文件是您期望的文件,只需打印它的内容。我真的不知道你使用argparse(或一般的argparse)会如何改变你正在使用的文件中的数字序列。是否确实指定了正确的文件/与添加argparse之前相同的文件?是的,没有argparse,一切都可以正常工作,但当我使用argparse时,它更改了csv文件中的数字顺序。如果要调试以确保正在读取的文件是您期望的文件,只需打印其内容即可。