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方法吧。