Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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 试图以不同格式输出到另一个文件_Python - Fatal编程技术网

Python 试图以不同格式输出到另一个文件

Python 试图以不同格式输出到另一个文件,python,Python,尝试输入文本文件(文本#1)并以以下格式输出到另一个文本文件(文本#2)。遇到错误。我是Python新手,如果有任何帮助,我将不胜感激 正文#1 正文#2 到目前为止,我所拥有的: inputfilename= input('Enter sales file name: ') outputfilename=input('Enter name for total sales file: ') with open(inputfilename, 'r') as i, open(outputfilen

尝试输入文本文件(文本#1)并以以下格式输出到另一个文本文件(文本#2)。遇到错误。我是Python新手,如果有任何帮助,我将不胜感激

正文#1

正文#2

到目前为止,我所拥有的:

inputfilename= input('Enter sales file name: ')
outputfilename=input('Enter name for total sales file: ')

with open(inputfilename, 'r') as i, open(outputfilename, 'w') as o:
    for line in i:
        fst_sale, lst_sale = line.split(' ')
        fst_sale = float(fst_sale[1:])
        lst_sale = float(lst_sale[1:])
        tot_sale = fst_sale + lst_sale
        new_line = ''.join(
            ['$' + str(x).rjust(10) 
            for x in [fst_sale, lst_sale, tot_sale]]
        )
        o.write(new_line + '\n')
当我点击run时出现以下错误:

 fst_sale, lst_sale = line.split(' ')
ValueError: not enough values to unpack (expected 2, got 1)

错误消息确切地告诉您出了什么问题:您尝试在“”处拆分一行并将其分解为两部分,但只得到了一部分。明智的做法是设置一个断点并检查行,或者取消对拆分的注释,而是打印它以检查它

如果您的行包含2个部分,您可以在实际将其分解为2个部分之前进行测试,以避免该错误:

with open(inputfilename, 'r') as i, open(outputfilename, 'w') as o:
    for line in i:
        if len(line.split(" ")) == 2: # only do it if you can split in 2 parts 
            fst_sale, lst_sale = line.split(' ')
            fst_sale = float(fst_sale[1:])
            lst_sale = float(lst_sale[1:])
            tot_sale = fst_sale + lst_sale
            new_line = ''.join(
                ['$' + str(x).rjust(10) 
                for x in [fst_sale, lst_sale, tot_sale]]
            )
            o.write(new_line + '\n')

阅读和跟随-这将使您能够解决自己的问题。

Read and follow-您的文件前面/结尾可能有一些空行,这些行是已阅读的,不能分解为两部分,因为它没有两部分。@jpp同一作者,同一代码,其他问题-无重复。只是缺少努力解决自己的问题。
 fst_sale, lst_sale = line.split(' ')
ValueError: not enough values to unpack (expected 2, got 1)
with open(inputfilename, 'r') as i, open(outputfilename, 'w') as o:
    for line in i:
        if len(line.split(" ")) == 2: # only do it if you can split in 2 parts 
            fst_sale, lst_sale = line.split(' ')
            fst_sale = float(fst_sale[1:])
            lst_sale = float(lst_sale[1:])
            tot_sale = fst_sale + lst_sale
            new_line = ''.join(
                ['$' + str(x).rjust(10) 
                for x in [fst_sale, lst_sale, tot_sale]]
            )
            o.write(new_line + '\n')