文件對象python
❶ python里怎麼樣判斷文件名和文件實例對象
python是一個動態類型的語言,這意味著任何一個給出的變數會隨著不同的場合是不同的類型,比如下面的例子中的變數,可以是整數、浮點數、或者字元串類型:
def function(value):
print(value)
function(1)
function(1.0)
function("one")
這時可以使用type()函數來檢查變數的類型,如下面的例子:
# File: builtin-type-example-1.py
def mp(value):
print(type(value), value)
mp(1)
mp(1.0)
mp("one")
輸出結果如下:
==== RESTART: D:/work/csdn/python_Game1/example/builtin-type-example-1.py ====
<class 'int'> 1
<class 'float'> 1.0
<class 'str'> one
>>>
因此可以使用type()函數來判斷一個變數是什麼類型,這里就可以用來判斷變數是字元串類型,還是文件對象,如下:
# File: builtin-type-example-2.py
def load(file):
if isinstance(file, type("")):
file = open(file, "rb")
return file.read()
print(len(load("builtin-type-example-2.py")), "bytes")
print(len(load(open("builtin-type-example-2.py", "rb"))), "bytes")
輸出結果如下:
==== RESTART: D:/work/csdn/python_Game1/example/builtin-type-example-2.py ====
273 bytes
273 bytes
>>>
在這一行代碼:
isinstance(file, type(""))
判斷是否為字元串變數。
❷ Python的文件對象問題
從python語法說吧。。。
fo 是一個變數。變數存儲在內存中的值。
open() 是一個系統函數,每次執行,不出錯的話,會返回值是一個「文件對象」。
fo = xx 是一個賦值語句。將 xx 賦值給變數 fo。
fo=open(「file.txt」,」wb」)
就是 通過 open 返回 「文件對象」,並且通過賦值語句賦值給變數 "fo"。
這樣說清楚了嗎?
另外,
fo 可以換成任何合法的變數名。(詳見python 變數 一節)
Python 變數類型
文件對象不同的原因。應該是對象裡面存儲的數據(屬性)不同。比如 fo.name 不同。(類的屬性,詳見「類和對象」一節。看對象)
Python 面向對象
❸ python 在讀寫文件之前,必須通過以下哪個方法創建文件對象
使用open打開文件後一定要記得調用文件對象的close()方法。比如可以用try/finally語句來確保最後能關閉文件。
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
註:不能把open語句放在try塊里,因為當打開文件出現異常時,文件對象file_object無法執行close()方法。
❹ 如何給 Python 文件指針(文件對象)增加方法
這么寫當然不對,你的__init__里都沒調用_io.TextIOWrapper的__init__。按照你的描述你需要的只是一個文件api的wrapper,寫成下面這樣不是更容易么?
class myfo():
....def __init__(self,fname,mod='r'):
........self.fp=open(fname,mod)
....def nl(self,k=1):
........self.fp.write('a'*k)
........self.fp.close()
>>> fo=myfo('test.txt','w')
>>> fo.nl(3)
❺ python file對象可以遍歷嗎
file不可以,不過readline方法返回是行迭代器
❻ Python中的文件對象是什麼概念 和對象有什麼區別
Python一切皆對象。 文件對象是對象的一種。
❼ Python用file對象和open方法處理文件的區別
file是一個類,而用open函數打開後是返回一個file對象。
file1 = file("aa.txt")
file2 = open("aa.txt")#這個時候返回的是跟file1一樣的對象,都可以對aa.txt進行讀取,修改。
暫時發現貌似沒多大區別,習慣上喜歡用open。
❽ Python 文件對象繼承問題
TextIOWrapper要求的參數buffer是bytes,'r'打開的是str而不是bytes當然會出錯。
fo.read和fo1.read都是一個方法而已,它們的type當然會相同,那type(fo.read) is type(fo.write)是不是更令你困惑了。。。
另外,你的這個問題和繼承沒啥關系吧,完全是概念問題。。
❾ python return文件對象
deffoo1(filename):
fileobj=open(filename)
returnfileobj
這樣寫更通用一些,不過這個方法比較簡單,沒有必要封裝成函數。
如果解決了您的問題請採納!
如果未解決請繼續追問
❿ python文件對象自動關閉
「=」為賦值表達式,python裡面都是對象,比如a=1,a就是「1」這個對象的引用,通過引用操作對象,that's all!