Python 關於讀寫txt的問題?
之前想用xml,但是我完全不懂,所以就放棄了,自己研究了一會txt,於是Python可以讀取txt了,但是我想做一個
if a.readlines() == ["0"]:
print "a"
elif a.readlines() == ["1"]:
print "b"
else:
print "Try Again"
結果運行的時候,txt文件內容改成0,結果是print "a",但是當我把txt文件內容改成1的時候,他卻運行了else的print "Try Again",我看到了 我是一個菜鳥,剛學python,跪求python讀取一個txt文件 這篇帖子,於是我做了如下更改:
#if a.readlines() == ["0"]:
# print "a"
if a.readlines() == ["1"]:
print "b"
else:
print "Try Again"
結果這次運行的結果是print "b",果然是因為「這是因為你先讀了f.readlines()之後,文件已經被讀到最後了,再讀一次就什麼都讀不出來」,Python是逐條運行的,所以會先運行一次
if裡面的」a.readlines()「,此時發現第一個不對,所以運行第二個,elif,但是此時txt文件已經讀到了最後,所以再讀就不可能是1(也就是["1"])了,就直接執行else。請問有什麼辦法能讓elif從頭讀取txt文件?
我想你需要的不是重新讀取
tmpFile = a.readlines()
if tmpFile == ["0"]:
print "a"
elif tmp ==["1"]:
print "b"
else:
"Try again"
用python數據處理模塊pandas,效率很高,比如讀取這種txt文件
只需要
import pandas as pd
movies_data = pd.read_table("./movies.txt", sep=",")
movies_data.head()
結果如下:
在pandas中進行數據的處理很方便。詳情請看官方文檔pandas: powerful Python data analysis toolkittemp = list[f.readlines()]將readlines存到一個變數裡面,用temp做各種判斷
f.seek(0)
你要把讀到的內容存起來再判斷。
不然執行第二個if的時候讀到的是空的,自然不會匹配到 b。上面幾個回答說的很清楚了,不需要從頭開始讀取文件,只需要把第一次讀取的內容存儲到一個變數中,進行判斷就可以了。如果非要說實現從頭開始讀取的文件的話,就先a.close(),再open文件一次唄。(個人感覺比較蠢的辦法)
for line in f.readlines(): """do something"""
推薦閱讀:
※Python Shell 中敲擊方向鍵顯示「^[[C^[[D」,原因是什麼?如何修復?
※為什麼python代碼有時候在命令行下和Python Shell中執行的結果不一樣呢 ?
※Python 曾經開發過哪些了不起的程序或遊戲?
※Python分析中文文字有哪些方法,那些庫?
※會了django還有必要學flask嗎?