1樓:錦恢
這個問題只要使用eval()函式就可以啦。(`ω)例如:就拿題主的問題來說吧。
Python讀取檔案的方式是一行一行讀取的,所以我們只需要獲取「1+1」這個字串,再對它使用eval()函式就可以啦。
我們的demo.txt:
程式:txt
=open
("demo.txt"
,"r").
read
()# 全部讀入
txt.
strip("
\n")# 去除回車鍵
result
=eval
(txt
)# 這就是計算結果,是數字
(txt
+"="
+str
(result
))# 要將數字轉化成str物件才能使用+連線執行結果:
那如果是若干行那?比如這樣?
那也沒關係,加乙個迴圈完事兒:
# 之前好像忘了說了,Python中使用open建立的檔案流物件是可以迭代的
# 所以直接使用迭代器遍歷
forformula
inopen
("demo.txt"
,"r"
):# 此處使用切片操作來去除回車鍵
# 當然,為了防止最後沒有回車誤去除最後乙個數字,咱們加乙個判斷formula
=formula[:-
1]ifformula[-
1]=='
\n'else
formula
# 其餘如法炮製即可
result
=eval
(formula
(formula
+"="
+str
(result
))執行結果:
希望您明白了(`ω)
2樓:喳 小銘
我的方法是,在讀取文字內容後再進行處理。
string.txt 中內容(注意最後的空行):
1+11*2
3-41+(2*5)
(這裡有空行)
處理文字的指令碼,script.py:
# 讀取文字
with
open
("string.txt"
,"r")as
f:l=
f.readlines
()print(l
)"""
['1+1
\n', '1*2
\n', '3-4
\n', '1+(2*5)
\n']
"""# 計算表示式並輸出
foriinl
:print("
%s=%s"
%(i[:
-1],eval(i
[:-1])))
"""1+1=2
1*2=2
3-4=-1
1+(2*5)=11
"""不知是否符合你的要求。
python怎麼鎖死開啟txt?
艾歐尼亞 本文摘自django檔案模組,因為平時這個東西比較冷門,我也是偶爾翻到的,因此摘出來,供後續使用 Example Usage with open file wb as f locks.lock f,locks.LOCK EX f.write test import os all LOCK ...
Python怎麼合併兩個GB級別的txt檔案?
burning 還是建議你直接用cat命令比較實在,方便快捷!但是如果你一定想要使用python的話,我可以提供下我的幾個思路,僅供參考!1.直接迴圈乙個檔案,追加到另乙個檔案後面,但是會很慢 2.使用pandas,直接merge,但是記憶體占用會很大 3.在基於第一點的方法上,使用多執行緒 最後還...
怎麼用python統計乙個txt檔案中的三個中文名字出現的次數?
coder 謝公子 import re text open text.txt r read name 張飛 關羽 劉備 for i in name result re.findall i,text print i,出現了 d次 len result z666 text open 路徑,encodin...