[英]How do I remove unwanted characters from a list created through python from yfinance?
[英]How do I remove unwanted indentation from Python output (File handling)?
我一直在研究使用Python 3.5.2從文件讀取的程序,其中結果以表的形式輸出。 我已將數據存儲為CSV格式的文件(但作為文本文件)
我不確定為什么,但是當我運行該過程時,結果似乎在第一條記錄后縮進了兩個空格。
def display():
with open("StudentScores.txt","r") as Scores:
print("{0:<10} {1:<10} {2:<5}".format("\nFIRSTNAME","SURNAME","SCORE"))
for eachLine in Scores:
eachLine.strip()
each=eachLine.split(",")
print("{0:<10} {1:<10} {2:<5}".format(each[0],each[1],each[2]),end="",sep="")
我正在使用的文本文件:
Ralph,White,41
Maria,Cox,26
Sharon,Barnes,88
Eric,Garcia,31
Cheryl,Scott,60
Ron,Cooper,11
Lori,Ramirez,34
William,Jones,60
Evelyn,Baker,28
Janice,Sanders,10
Ralph,White,41
Maria,Cox,26
Sharon,Barnes,88
Eric,Garcia,31
Cheryl,Scott,60
Ron,Cooper,11
Lori,Ramirez,34
William,Jones,60
Evelyn,Baker,28
Janice,Sanders,10
最后是我收到的輸出(從IDLE復制)
FIRSTNAME SURNAME SCORE
Ralph White 41
Maria Cox 26
Sharon Barnes 88
Eric Garcia 31
Cheryl Scott 60
Ron Cooper 11
Lori Ramirez 34
William Jones 60
Evelyn Baker 28
Janice Sanders 10
Ralph White 41
Maria Cox 26
Sharon Barnes 88
Eric Garcia 31
Cheryl Scott 60
Ron Cooper 11
Lori Ramirez 34
William Jones 60
Evelyn Baker 28
Janice Sanders 10
有什么建議么? 如果有幫助,我在新的筆記本電腦(Windows 10)上僅使用Python 3天。
當您從文件中讀取行時:
for eachLine in Scores:
這些行的末尾包括換行符(如果文件缺少最后一個換行符,則最后一行除外)。
致電strip
:
eachLine.strip()
不會改變eachLine
。 它返回一個新的,已剝離的字符串,您將立即忽略該字符串並將其丟棄。 eachLine
仍有尾隨換行符。
當您調用split
:
each=eachLine.split(",")
each[2]
都有尾隨換行符。
當您用替換字段{2:<5}
打印each[2]
時, each[2]
包含2位數字和換行符。 <5
在寬度5的字段中將其左對齊,在末尾用空格填充,因此它將在下一行打印兩位數字,換行符和兩個空格 。
要解決此問題,請實際存儲strip
的返回值,停止對分數字段進行空格填充,並停止傳遞end=""
。 sep=""
也是多余的,因為您一次只print
一個字符串:
def display():
with open("StudentScores.txt","r") as Scores:
print("{0:<10} {1:<10} {2}".format("FIRSTNAME","SURNAME","SCORE"))
for eachLine in Scores:
eachLine = eachLine.strip()
each = eachLine.split(",")
print("{0:<10} {1:<10} {2}".format(each[0],each[1],each[2]))
更改此行:
print("{0:<10} {1:<10} {2:<5}".format(each[0],each[1],each[2]),end="",sep="")
對此:
# Just changing <5 to <3
print("{0:<10} {1:<10} {2:<3}".format(each[0],each[1],each[2]),end="",sep="")
並且應該以所需的格式打印。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.