需要一个基本python项目的建议吗
我最近开始学习Python,所以有时候最简单的事情对我来说可能是挑战和困难的 但无论如何; 我正试图写一个基本的程序,可以帮助我在目前的工作 我的想法是,我只需要填写与我下的订单相关的详细信息,程序会创建订单的对象并自动将其添加到CSV文件中 此外,还可以对已发货订单、预测销售额、待发货订单等进行概述。 它总是给我多个错误,writerow由于参数太多而不可能。 然后我只得到字符串:“日期”、“金额”、“客户”等作为输出(在同一列中) 现在,我只想创建一个对象,并使用对象属性将该对象写入CSV文件 在同一行的不同列中 这是我的密码:需要一个基本python项目的建议吗,python,Python,我最近开始学习Python,所以有时候最简单的事情对我来说可能是挑战和困难的 但无论如何; 我正试图写一个基本的程序,可以帮助我在目前的工作 我的想法是,我只需要填写与我下的订单相关的详细信息,程序会创建订单的对象并自动将其添加到CSV文件中 此外,还可以对已发货订单、预测销售额、待发货订单等进行概述。 它总是给我多个错误,writerow由于参数太多而不可能。 然后我只得到字符串:“日期”、“金额”、“客户”等作为输出(在同一列中) 现在,我只想创建一个对象,并使用对象属性将该对象写入CSV文
import csv
from datetime import datetime
class Order():
def __init__(self, amount, customer, status, eta):
self.date = datetime.now()
self.amount = amount
self.customer = customer
self.status = status
self.eta = datetime.strptime(eta, '%m-%d') #Converting string input into datestamp
def __repr__(self):
pass
def add_to_orders(self): #Method to add an order to a CSV file
csv_file = open('orders.csv', 'w')
fieldnames = ['Order Number', 'Date', 'Amount', 'Customer', 'Status', 'ETA']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames, delimiter=',')
writer.writeheader()
writer.writerow(self, self.date, self.amount, self.customer, self.status, self.eta)
def reading():
with open('orders.csv') as csvfile:
csvreader = csv.DictReader(csvfile)
for line in csvreader:
return line
SCEO36261634 = Order(1500, 'Jasper', 'Shipped', '12-05')
print(SCEO36261634.amount)
SCEO36261634.add_to_orders()
提前感谢您希望附加到文件(模式'a'
),即使如此,您也只希望在必要时写入CSV头:
class Order():
def __init__(self, amount, customer, status, eta):
self.date = datetime.now()
self.amount = amount
self.customer = customer
self.status = status
self.eta = datetime.strptime(eta, '%m-%d')
def add_to_orders(self):
fieldnames = ['Order Number', 'Date', 'Amount', 'Customer', 'Status', 'ETA']
with open(filename, 'a', newline='', encoding='utf8') as csv_file:
writer = csv.DictWriter('orders.csv', fieldnames=fieldnames, delimiter=',')
# only write headers if we are appending to a brand-new file
if file.tell() == 0:
writer.writeheader()
writer.writerow([self.date, self.amount, self.customer, self.status, self.eta])
def read(self):
with open('orders.csv', 'r', newline='', encoding='utf8') as csvfile:
yield from csv.DictReader(csvfile)
此外,您还应该为.writerow()
提供一个列表(字段值)
除此之外,始终指定文件编码是明智的
utf8
将是几乎所有情况下的最佳选择。由于您希望向文件中添加订单,我建议打开文件进行追加。关于这一点,有一篇很好的文章,所以似乎最适合提问。在你的问题中很难看到一个问题。也许你可以重新措辞。