在Python中使用excelinput新列中的数据

我正在使用Python 3.5.2

这是我的input:

print("") print("-----------------------------------------------------------------------------------------------------------------------------------------------------------") print("| (1) Enter new student details | (2) Edit existing student details | (3) Retrieve Student details |") print("-----------------------------------------------------------------------------------------------------------------------------------------------------------") print("") option=int(input("Select an option from the menu, 1/2/3/: ")) if option==1: f=open("Student Details.xls" , "w") f.write("Forename"+"\n") fname=input("Enter the student's first name: ") f.write(fname) f.write("Surname"+"\n") sname=input("Enter the student's surname: ") f.write(sname) f.write("DOB"+"\n") dob=input("Enter the student's DOB: ") f.write(dob) f.write("Postcode"+"\n") pcode=input("Enter the student's postcode: ") f.write(pcode) 

当它运行时,它创build一个excel文件并写入它。 但是,它将所有的细节写在一个单元格中。 我想让excel文件看起来像这样:

 Forename Surname DOB Postcode Jim Bob 12/12/12 w7 1eu 

我研究了如何在不同列中input数据,但是我find的所有解决scheme都使用导入xlwt,我无法安装 – 因为我没有在这台PC上的pipe理权限。

有没有另外一种方法呢?

以下是使用csv模块的一个简单示例。

 import csv fname = .... sname = ... dob = ... pcode = ... with open('Student Details.csv', 'w') as f: writer = csv.writer(f) writer.writerow(['Forename', 'Surname', 'DOB', 'Postcode']) writer.writerow([fname, sname, dob, pcode]) 

同样,你可以使用reader = csv.reader(f); for line in reader: ... reader = csv.reader(f); for line in reader: ...的行reader = csv.reader(f); for line in reader: ...来遍历文件的行。

我真的推荐使用类似openpyxl东西,而不是直接处理文件。 它使这个过程变得更简单:

 from openpyxl import Workbook wb = Workbook() # grab the active worksheet ws = wb.active # Data can be assigned directly to cells ws['A1'] = 42 # Rows can also be appended ws.append([1, 2, 3]) # Python types will automatically be converted import datetime ws['A2'] = datetime.datetime.now() # Save the file wb.save("sample.xlsx")