Python学习积累:使用help();打印多个变量;fileno()

1.使用篇:

1.1如何从help()退出:

直接回车即可!

 

2.技能篇:

2.1 如何一次性打印多个变量?

多个变量中间使用逗号隔开,且引用变量为%(变量1,变量2,变量3),

2.2fileno()

简单解释:返回一个整型的文件描述符(file descriptor FD 整型),可用于底层操作系统的 I/O 操作。

实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 打开文件
fo = open("runoob.txt", "wb")
print "文件名为: ", fo.name

fid = fo.fileno()
print "文件描述符为: ", fid

# 关闭文件
fo.close()

输出:

文件名为:  runoob.txt
文件描述符为:  3

没理解,又查到下面的解释,清晰多了:

解释2:更容易理解

功    能:把文件流指针转换成文件描述符
相关函数:open, fopen
表头文件:#include <stdio.h>
定义函数:int fileno(FILE *stream)
函数说明:fileno()用来取得参数stream指定的文件流所使用的文件描述词
返回值  :返回和stream文件流对应的文件描述符。如果失败,返回-1。

含义:当一个文件打开后,系统会分配一部分资源来保存该文件的信息,以后对文件的操作就可以直接引用该部分资源了。文件描述词可以认为是该部分资源的一个索引,在打开文件时返回。

用途:在使用fcntl函数对文件的一些属性进行设置时就需要一个文件描述词参数。

进一步:当程序执行时,就已经有三个文件流打开了,它们分别是标准输入stdin,标准输出stdout和标准错误输出stderr。

               和流式文件相对应的是,也有三个文件描述符被预先打开,它们分别是0,1,2,代表标准输入、标准输出和标准错误输出。

******特别指出的是,上面的流式文件输入、输出和文件描述符的输入输出方式不能混用,否则会造成混乱。

感谢https://blog.csdn.net/TuxedoLinux/article/details/80585259

2.3fcntl()

python 中给文件加锁——fcntl模块
import fcntl

fcntl模块:
flock() : flock(f, operation)
operation : 包括:
    fcntl.LOCK_UN 解锁
    fcntl.LOCK_EX  排他锁
fcntl.LOCK_SH  共享锁
fcntl.LOCK_NB  非阻塞锁
LOCK_SH 共享锁:所有进程没有写访问权限,即使是加锁进程也没有。所有进程有读访问权限。
LOCK_EX 排他锁:除加锁进程外其他进程没有对已加锁文件读写访问权限。
LOCK_NB 非阻塞锁:如果指定此参数,函数不能获得文件锁就立即返回,否则,函数会等待获得文件锁。
LOCK_NB可以同LOCK_SH或LOCK_NB进行按位或(|)运算操作。 fcnt.flock(f,fcntl.LOCK_EX|fcntl.LOCK_NB)

使用:

打开一个文件
##当前目录下test文件要先存在,如果不存在会报错。或者以写的方式打开
f = open('./test')
对该文件加密:
fcntl.flock(f,fcntl.LOCK_EX)
这样就对文件test加锁了,如果有其他进程对test文件加锁,则不能成功,会被阻塞,但不会退出程序。
解锁:fcntl.flock(f,fcntl.LOCK_UN)

 

转载于:https://www.cnblogs.com/dLarger/p/10488547.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值