python的file函數
A. python 如何新建一個新的File
#python
f=open('f.txt','w') # r只讀,w可寫,a追加
for i in range(0,10):f.write(str(i)+' ')
例子:
#!/usr/bin/python
#coding=utf-8
import os
import time
import sys
f=open('a.txt','a')
f.write(os.popen('netstat -nltp | grep 22').read())
f.close()
(1)python的file函數擴展閱讀:
關於上述創建文件,文件內容追加
#python
import random
f=open('f.txt','a')
for i in range(0,10):f.write(str(random.randint(0,9)))
. . .
f.write(' ')
f.close()
或者
#python
import rando
f=open('f.txt','a')
for i in range(0,10):
for i in range(0,10):f.write(str(random.randint(0,9)))
f.write('
')
f.close()
B. python中的file是什麼意思呢
是file類的構造函數,參數和內置的open()函數相同,在打開文件時更推薦使用open(),所以更多用於測試文件類型的測試:isinstance(f,file)
參考python2.7.5文檔的解釋:
file(name[, mode[,
buffering]])
Constructor function for the file type, described further in section File
Objects. The constructor』s arguments are the same as those of the open()
built-in function described below.
When opening a file, it』s preferable to use open()
instead of invoking this constructor directly. file
is more suited to type testing (for example, writing isinstance(f, file)).
C. Python中的eval()、filter()、float()函數有什麼用
Python解釋器內置了許多函數,這意味著我們無需定義,始終可以它們。下面按照函數的字母順序,討論一些常用的內建函數。
eval()
eval()函數解析傳給它的表達式,並在程序中運行Python表達式(代碼)。舉個例子:
>>>x=1
>>>eval("x+1")#注意:"x+1"是字元串
2
>>>eval("4<9")
True
>>>eval("'py'*3")
'pypypy'
>>>eval("10**2")
100
>>>eval("abs(-11)")#計算-11的絕對值
11
>>>eval('"hello".upper()')#把字元串'hello'全變成大寫字母
'HELLO'
>>>importos
>>>eval('os.getcwd()')#獲取當前的工作目錄
'/home/thepythonguru'
>>>eval('a=1')#賦值語句
Traceback(mostrecentcalllast):
File"",line1,in
File"",line1
a=1
^
SyntaxError:invalidsyntax
>>>eval('importre')#導入語句
Traceback(mostrecentcalllast):
File"",line1,in
File"",line1
importre
^
SyntaxError:invalidsyntax
>>>eval(input())#eval()將執行用戶輸入的代碼
os.system("RM-RF/")
#上面輸入相當於執行:
>>>eval('os.system("RM-RF/")')
>>>a=[1,2,3,4,5,6]
>>>filter(lambdax:x%2==0,a)#過濾出所有偶數,結果返回一個filter對象
<filterobjectat0x1036dc048>
>>>list(filter(lambdax:x%2==0,a))#可以使用list()函數使fileter對象變成列表,方便查看結果
[2,4,6]
>>>dict_a=[{'name':'python','points':10},{'name':'java','points':8}]
>>>filter(lambdax:x['name']=='python',dict_a)#過濾出列表中鍵'name'為值'python'的字典
<filterobjectat0x1036de128>
>>>tuple(filter(lambdax:x['name']=='python',dict_a))#使用tuple()函數使結果變成字典
({'name':'python','points':10},)
>>>float('+1.23')#1.23
1.23
>>>float('-12345 ')#-12345
-12345.0
>>>float('1e-003')#0.001
0.001
>>>float('+1E6')#10的6次冪
1000000.0
>>>float('-Infinity')#無窮小
-inf
>>>float('-inf')+100#負無窮小加100仍等於負無窮小
-inf
>>>float('inf')#無窮大
inf
>>>float('NaN')#NaN,代表非數字
nan
eval()函數不僅僅能運行簡單表達式,還能調用函數,使用方法等等:
但是需要注意的是eval()僅適用於表達式,嘗試傳遞語句會導致語法錯誤:
此外,使用eval()語句應該十分小心,永遠不要將不受信任的源直接傳遞給eval()。 因為惡意用戶很容易對您的系統造成破壞。 例如:
用戶輸入以下代碼就能從系統中刪除所有文件:
filter()
"filter"的意思是「過濾」,filter()函數需要兩個參數:一個函數對象和一個可迭代對象。函數對象需要返回一個布爾值,並為可迭代的每個元素調用。 filter()函數僅返回那些通過函數對象返回值為true的元素。解釋有一些抽象,看一個例子:
下面是另外一個例子:
float()
float()的參數是一個數字或者字元串,它返回一個浮點數。如果參數是字元串,則字元串中應該包含一個數字,並可以在數字前加入一個 '-' 符號,代表負數。參數也可以是表示NaN(非數字)或正無窮大的字元串。如果沒有任何參數的話,將返回0.0。
關於Python的基礎問題可以看下這個網頁的視頻教程,網頁鏈接,希望我的回答能幫到你。
D. Python用file對象和open方法處理文件的區別
python document 是這么說的:
File objects are implemented using C』s stdio package and can be created
with the built-in open() function. File objects are also returned by
some other built-in functions and methods, such as os.popen() and
os.fdopen() and the makefile()
method of socket objects. Temporary files can be created using the
tempfile mole, and high-level file operations such as ing, moving,
and deleting files and directories can be achieved with the shutil
mole.
並且對File 對象的構造函數說明如下:
file(filename[, mode[, bufsize]])
Constructor function for the file type, described further in section
File Objects. The constructor』s arguments are the same as those of the
open() built-in function described below.
When opening a file, it』s preferable to use open() instead of invoking
this constructor directly. file is more suited to type testing (for
example, writing isinstance(f, file)).
New in version 2.2.
但是其實我在如下代碼段中,def setNodeManagerDomain(domainDir):
try:
domainName = os.path.basename(domainDir)
fd = open(domainDir + '/nodemanager/nodemanager.domains', 'w')
fd.write('#Domains and directories created by Configuration Wizard.\n')
fd.write('#' + time.ctime() + '\n')
dirNorm=os.path.normpath(domainDir).replace('\\','\\\\')
fd.write(domainName + '=' + dirNorm)
print 'create domain file and close in the end under the directory:' + domainDir
fd.close
except Exception, e:
print 'Failed to create domain file in the directory:' + domainDir
我使用file對象 or open方法在windows 環境下都能通過,但是程序部署到linux環境中就出現問題。
[echo] NameError: file
可能linux環境對file支持不好,所以保險起見,還是遵循文檔中所說的,堅持用open方法吧。