open函数

Python-文件读写

吃可爱长大的小学妹 提交于 2019-12-10 06:33:30
文章目录 open()函数 读 f.read() f.readline() f.readlines() 循环方式读取内容 写 f.write() 指针位置 f.tell() f.seek() with关键词 open()函数 open() 方法用于打开一个文件,并返回文件对象。 使用 open() 方法一定要保证关闭文件对象,即 调用 close() 方法 open(file,mode) 函数常用形式是接收两个参数:文件名(file)和模式(mode) 模式区分: 文件类型选择 操作类型组合选择 含义 t r\w\a\r+\w+\a+ 默认参数,文本模式 b br\bw\ba\br+\bw+\ba+ 二进制模式,因为默认为文本模式,如果要以二进制模式打开,需要在模式中加上 b 操作类型选择 含义 . r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。读取的文件若不存在,会报错 r+ 打开一个文件用于读写。文件指针将会放在文件的开头 w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件 w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件 a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说

python文件与输入输出

烂漫一生 提交于 2019-12-09 23:17:50
注:本文档是学习《Python核心编程(第二版)》时的整理。由于这部分内容比较多,故分成两部分进行记录。 1.文件对象 文件对象不仅可以用来访问普通的磁盘文件,也可以访问任何其他类型抽象层面上的"文件"。一旦设置了合适的"钩子",就可以访问具有文件类型接口的其它对象,就好像访问的是普通的文件。 2.文件内建函数(open()和file()) open()和file()提供了初始化输入/输出(I/O)操作的通用接口,open()内建函数成功打开文件会返回一个文件对象,否则引发一个异常。当操作异常,会产生一个IOError异常。基本语法如下: file_object = open(file_name, access_mode='r', buffering=-1) file_name是包含要打开的文件名字的字符串,可以是相对路径或者绝对路径。 可选变量access_mode是一个字符串,代表文件的打开模式,'r'表示读取,'w'表示写入,'a'表示追加。另外,'U'代表通用换行符支持。 使用'r'或者'U'模式打开的文件必须是已经存在的;使用'w'模式打开的文件若已经存在则首先清空,然后(重新)创建;以'a'模式打开的文件是为追加数据做准备的,所有写入的数据都追加到文件的末尾,即使seek到了其他的地方,如果文件不存在,则自动创建。 另外,C语言中fopen(

linux系统编程:命名管道FIFO和mkfifo函数

本秂侑毒 提交于 2019-12-09 20:50:10
进程间通信必须通过内核提供的通道,而且必须有一种办法在进程中标识内核提供的某个通道,前面讲过的 匿名管道 是用打开的文件描述符来标识的。如果要互相通信的几个进程没有从公共祖先那里继承文件描述符,它们怎么通信呢?内核提供一条通道不成问题,问题是如何标识这条通道才能使各进程都可以访问它?文件系统中的路径名是全局的,各进程都可以访问,因此可以用文件系统中的 路径名 来标识一个IPC通道。 FIFO和UNIX Domain Socket这两种IPC机制都是利用文件系统中的 特殊文件 来标识的。 FIFO文件在磁盘上没有数据块,仅用来标识内核中的一条通道 ,如 prw-rw-r-- 1 simba simba 0 May 21 10:13 p2,文件类型标识为p表示FIFO,文件大小为0。 各进程可以打开这个文件进行read/write,实际上是在读写内核通道(根本原因在于这个file结构体所指向的read、write函数和常规文件不一样),这样就实现了进程间通信。UNIX Domain Socket和FIFO的原理类似,也需要一个特殊的socket文件来标识内核中的通道,例如/run目录下有很多系统服务的socket文件: srw-rw-rw- 1 root root 0 May 21 09:59 acpid.socket ....................

XSS的一些绕过手法

◇◆丶佛笑我妖孽 提交于 2019-12-09 19:22:37
注:XSS我没有实战研究过所以大多都是靶场用的手法和别人的一些文章,可能实战的时候效果不好 1.绕过简单的xss防护 1.如果双引号被禁用就用单引号。 2.针对黑名单过滤,过滤一般不全,在过滤了img还有input或者div 3.过滤了onclik,onmouseover,可以尝试冷门的事件触发onmouseenter(注意冷门最好) 4.过滤了()可以尝试(),过滤了‘可以尝试反引号,这个是反引号` 5.过滤了alert,可以尝试confirm和prompt 6.大小写绕过 7.双写绕过 1.加上一个xmlns属性绕过 如果<svg onload="javascriptalert(1)">被拦截了 可以试试<svg onload="javascriptalert(1)"xmlns="https:www.baidu.com"> 2.top绕过 方法是: <details open ontoggle=top.alert(1)> <details open ontoggle=top[‘prompt’](1)> <details open ontoggle=top[‘al’%2b’ert’](1)> 注:%2b为url编码的+ 3.eval函数执行 <details open ontoggle=top.eval(‘ale’%2B’rt(1)’) > <details open

Python中的文件和流

落花浮王杯 提交于 2019-12-09 18:17:50
1.打开文件 open函数用于打开文件,通过该函数的第1个参数指定要打开的文件名(可以是相对路径,也可以是绝对路径)。 open函数的第2个参数用于指定文件模式(用一个字符串表示)。这里的文件模式是指操作文件的方式,如只读、写入、追加等。 使用open函数打开文件时,默认是读模式,如果要想向文件中写数据,需要通过open函数的第2个参数指定文件模式。 写模式和追加模式的区别:如果文件存在,写模式会覆盖原来的文件,而追加模式会在原文件内容的基础上添加新的内容。 在文件模式中,有一些文件模式需要和其他文件模式放到一起使用,如open函数不指定第2个参数时,默认以读模式打开文本文件,也就是“rt”模式。如果以写模式打开文本文件,需要使用“wt”模式。对于文本文件来说,用文本模式(t)打开文件和用二进制模式(b)打开文件的区别不大,都是以字节为单位读写文件,只是在读写行结束符时有一定的区别。 在上表中,最后一项“+”文件模式,表示读写模式,必须与其他文件模式一起使用,如“r+”、“w+”、“a+”。这三个组合文件模式都可以对文件进行读写操作,它们之间的区别如下: r+ :文件可读写,如果文件不存在,会抛出异常;如果文件存在,会从当前位置开始写入新内容,通过seek函数可以改变当前的位置,也就是改变文件的指针。 w+ :文件可读写,如果文件不存在,会创建一个新文件;如果文件存在

自动化学习-Day04

跟風遠走 提交于 2019-12-09 17:52:20
作业 #1、注册: # 账号和密码存在文件里面 # username,123456 # username2,abc123 #1、读写文件 # 1、要从文件里面提取出来所有的用户名 # 2、将注册成功的账号和密码写入文件 f = open('user.txt','a+') f.seek(0) res = f.read() all_user_name = [] for i in res.split('\n'): username = i.split(',')[0] all_user_name.append(username) for i in range(3): username = input('username:').strip() pwd = input('pwd:').strip() cpwd = input('cpwd:').strip() if not (len(username) >= 6 and len(username) <=20 ): print('用户名长度不合法') elif not (len(pwd) >= 8 and len(pwd) <=20 ): print('密码长度不合法') elif cpwd != pwd: print('两次输入的密码不一致') elif username in all_user_name: print('用户名已被注册')

linux上的进程通信学习笔记

大城市里の小女人 提交于 2019-12-07 00:17:42
参考资料 <<精通Linux C编程>> http://man7.org/linux/man-pages/man2/open.2.html https://www.cnblogs.com/52php/p/5840229.html 在 Android中的Handler的Native层研究 文章中研究一下一把Linux中的匿名管道的通信机制,今天这里Linux中的进程间通信补齐。 在Linux中,实现进程通信的方法包括管道(匿名管道和具名管道),消息队列,信号量,共享内存,套接口等。消息队列,信号量,共享内存统称为系统的(POSIX和System V)IPC,用于本地间的进程通信,套接口(socket)则运用于远程进程通信。 各个通信机制定义如下: 匿名管道(Pipe)和具名管道(named pipe):匿名管道用于具有亲缘关系进程间的通信,具名管道克服了管道没有名字的限制,因此除了具有匿名管道的功能外,还允许在无亲缘关系的进程中进行通信。 消息队列(Message):消息队列为消息的链接表,包括POSIX消息队列和System V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读取队列中的消息。 共享内存:是的多个进程可以访问同一块内存空间,是最快的可以IPC形式。是针对其他的通信机制运行效率较低而设计出来的。往往与其他通信机制,如信号量结合使用

IE6的又一条罪 javascript:void(0)

时光怂恿深爱的人放手 提交于 2019-12-06 21:17:57
IE6下使用<a href='javascript:void(0);' onclick='open_thickbox()' />弹出新窗口</a> 时, 如果open_thickbox是弹出一个新的窗口,则是无法弹出的,但open_thickbox()中的函数是有执行的 所有,建议在使用A标签是,尽量不要使用javascript:void();,如果非使用不可的话,可以用:<a href='#' onclick='open_thickbox();return false;'>弹出新窗口</a> 来源: oschina 链接: https://my.oschina.net/u/1092/blog/3555

1.python内置函数open()学习经验分享

♀尐吖头ヾ 提交于 2019-12-06 14:56:53
一、来源 python官网(https://www.python.org/)→Docs→Docs for other versions→Python 2.7(stable)→Library Reference→Built in Functions. 或者 把PDF文档直接下载到本地:python官网(https://www.python.org/)→Docs→Docs for other versions→Python 2.7(stable)→Download→Download these documents 二、以open()函数为例 python官网(https://www.python.org/)→Docs→Docs for other versions→Python 2.7(stable)→open() 语法:open(name[,mode[,buffering]]) name是必须的,模式和缓冲参数是可选的。模式包括:'r'只读模式,'w'写模式,'a'追加模式,'b'二进制模式,'+'读/写模式 'r'只读模式 # -*- coding: utf-8 -*- #open()函数测试 f= open('F:/test/py/resource/test1.txt','r') print f.read() f.close() 注:test1.txt中只有一行数字1 2 3

括号生成

走远了吗. 提交于 2019-12-06 14:10:44
描述: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 示例: 例如,给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 思路: 这道题可以用回溯法解决, 即穷举出所有可能,再按照规则过滤结果。但是更好的办法是在回溯的过程中,就进行规则的判断,进行剪枝操作: 只有在我们知道序列仍然保持有效时才添加 '(' or ')',我们可以通过跟踪到目前为止放置的左括号和右括号的数目来做到这一点, 如果我们还剩一个位置,我们可以开始放一个左括号。 如果它不超过左括号的数量,我们可以放一个右括号。 java: class Solution { /** * 主方法. * * @param n 括号个数 * @return 合法括号集合 */ public List<String> generateParenthesis(int n) { List<String> resultList = new ArrayList<>(10); helper(resultList, "", 0, 0, n); return resultList; } /** * 功能方法. * * @param list 有效括号集合 * @param temp 字符串 * @param open