Python csv fi

2024-09-29 00:18:48 发布

您现在位置:Python中文网/ 问答频道 /正文

回答:我需要使用append而不是extend。由于fetchAirports函数没有在另一个类中实际运行getAirport方法,下面的代码仍然不起作用,因此我不建议尝试使用这些方法。在

TL,DR;我把用户输入输入到一个列表中并写入CSV文件。编写器将每个字符都写为元素,而不是每个字符串。在

我正在为我的HDip做一个作业,并决定让它变得更有趣一点。我们需要从CSV文件中读取机场列表,从另一个CSV中获取这些机场的数据,计算出最具成本效益的路线,并将最佳路线写入新的CSV。在

我决定让它变得更加有趣,允许用户输入自己的机场代码,将其写入CSV,或者使用现有的CSV文件。它不是将每个代码作为一个条目打印出来,而是输入每个字母。所以我收到一个文件,上面写着:

P,I,K,
E,D,I,
D,U,B,
A,A,L,
K,O,I, 

我还不明白为什么会这样。相关代码如下。 主要:

^{pr2}$

行程等级:

import os, csv

class Itinerary:
    def __init__(self,aircraft='747', atlas=None):
        self.iAtlas=atlas
        self.iPlane=aircraft
        self.iRoute=[] #route as a list of strings
        self.iAirportRoute=[] #route as a list of Airport Objects

    def createList(self,filename):
       with open(os.path.join(filename), "w",newline='') as f:
        writer=csv.writer(f,delimiter=",")
        for airport in self.iRoute:
            csvrow = []
            csvrow.extend(airport)
            writer.writerow(csvrow)

    def fetchAirports(self):
        for port in self.iRoute:
            try :
                #upps=port.upper()
                self.iAirportRoute.append(self.iAtlas.getAirport)
            except KeyError:
                print("The following code", port, "is invalid")

    def getItin(self, filename):
        with open(os.path.join(filename),"rt",encoding="utf8") as f:
            csvfilelines=csv.reader(f)
            for row in csvfilelines:
                try :
                    self.iRoute.extend(row)
                except KeyError:
                    #If code isn't found , the airport won't be added to the dictionary
                    continue

如果你们能提供任何帮助,我们将不胜感激。在


Tags: 文件csv代码selfforosdefas