[英]how to write a header in already existent text file with python
我創建了一個將學生數據附加到文本文件的函數。 創建該函數后,我想添加一個標題,以便用戶知道數據代表什么。 但是現在,標題確實添加到文件中,但該功能不再添加學生的數據......
這是我的代碼:
FirstName = []
LastName = []
Class = []
Adress = []
Math = []
Science = []
English = []
Dutch = []
Arts = []
def add_records(filename, FirstName, LastName, Class, Adress, Math, Science, English, Dutch, Arts):
header = "First Name, Last Name, Class, Adress, Math Grade, Science Grade, English Grade, Dutch Grade, Arts Grade"
x= input("Enter First Name:")
FirstName.append(x)
y=input("Enter Last Name:")
LastName.append(y)
b=input("Enter Student's Class:")
Class.append(b)
o=input("Enter Address:")
Address.append(o)
z=int(input("Enter Math Grade:"))
Math.append(z)
w=int(input("Enter Science Grade:"))
Science.append(w)
h=int(input("Enter English Grade:"))
English.append(h)
p=int(input("Enter Dutch Grade:"))
Dutch.append(p)
v=int(input("Enter Arts Grade:"))
Arts.append(v)
f = open(filename, 'r')
lines = f.readlines()
if lines[0] in f == header:
f=open(filename,"a+")
for i, j, r, k ,l, m, n, o, p in zip(FirstName, LastName, Class, Adress, Math, Science, English, Dutch, Arts):
print(i,j,k,r,l,m,n,o,p)
a=f.write(i + ' ' + j + ' ' + r + ' '+ k + ' ' + str(l) + ' ' + str(m) + ' ' + str(n) + ' ' + str(o) + ' ' + str(p) + "\n")
f.close()
else:
file = open(filename, 'a+')
file.write(header + a + "\n")
file.close()
f.close()
add_records("mytextfile.txt",FirstName,LastName,Class,Adress,Math,Science,English,Dutch,Arts)
有人可以向我解釋為什么嗎?
文本文件沒有標題。 如果你想要一個真正的標題,你需要一個更復雜的格式。 或者,如果您只需要像標題一樣的東西,那么您需要確定頁面垂直適合多少個字符,然后每 N 行打印標題。
對於水平對齊,請使用可以與 format() 一起使用的額外標記。 舉個例子:
print('{a:^8}{b:^8}{c:^8}'.format(a='this', b='that', c='other'))
this that other
其中 ^8 表示我希望字符串以 8 個字符為中心。 顯然,您必須選擇(或推導)適用於您的數據的值。
如果尚未創建mytextfile.txt
,則會拋出錯誤。 如果您已經創建了空的mytextfile.txt
,那么它仍然會拋出錯誤,因為沒有lines[0]
(它是一個空文件)。
而且你的if
語句也有問題,你應該寫:
if lines[0].strip() == header
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.