open函数

【Python】(十二)IO 文件处理

删除回忆录丶 提交于 2020-01-20 10:12:06
1.文件处理 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。 读文件 要以读文件的模式打开一个文件对象,使用Python内置的 open() 函数,传入文件名和标示符: >> > f = open ( '/Users/michael/test.txt' , 'r' ) 标示符 ’r’ 表示读,这样,我们就成功地打开了一个文件。 如果文件不存在, open() 函数就会抛出一个 IOError 的错误,并且给出错误码和详细的信息告诉你文件不存在: >> > f = open ( '/Users/michael/notfound.txt' , 'r' ) Traceback ( most recent call last ) : File "<stdin>" , line 1 , in < module > FileNotFoundError : [ Errno 2 ] No such file or directory : '/Users/michael

[SUCTF 2019]EasyWeb

我与影子孤独终老i 提交于 2020-01-19 02:53:46
<?php function get_the_flag ( ) { // webadmin will remove your upload file every 20 min!!!! $userdir = "upload/tmp_" . md5 ( $_SERVER [ 'REMOTE_ADDR' ] ) ; if ( ! file_exists ( $userdir ) ) { mkdir ( $userdir ) ; } if ( ! empty ( $_FILES [ "file" ] ) ) { $tmp_name = $_FILES [ "file" ] [ "tmp_name" ] ; $name = $_FILES [ "file" ] [ "name" ] ; $extension = substr ( $name , strrpos ( $name , "." ) + 1 ) ; if ( preg_match ( "/ph/i" , $extension ) ) die ( "^_^" ) ; if ( mb_strpos ( file_get_contents ( $tmp_name ) , '<?' ) !== False ) die ( "^_^" ) ; if ( ! exif_imagetype ( $tmp_name ) ) die ( "^_^"

文件file

穿精又带淫゛_ 提交于 2020-01-17 06:55:45
文件的打开与关闭 同样,在操作文件的整体过程与使用word编写一份简历的过程是很相似的 1 打开文件,或者新建立一个文件 2 读/写数据 3 关闭文件 <1>打开文件 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件名,访问模式) 示例如下: f = open('test.txt', 'w') 说明: 访问模式 说明 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。 w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 a+

python文件操作

心已入冬 提交于 2020-01-17 05:39:10
文件的打开与关闭 打开文件 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件名,访问模式) f = open('test.txt', 'w') 关闭文件 close( ) # 新建一个文件,文件名为:test.txt f = open('test.txt', 'w') # 关闭这个文件 f.close() 文件的读写 写数据 使用write()可以完 成向文件写入数据 f = open('test.txt', 'w') f.write('hello world, i am here!') f.close() 运行现象: 注意: 如果文件不存在那么创建,如果存在那么就先清空,然后写入数据 读数据 使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是 字节 ),如果没有传入num,那么就表示读取文件中所有的数据 f = open('test.txt', 'r') content = f.read(5) print(content) print("-"*30) content = f.read() print(content) f.close() 运行现象: 注意: 如果open是打开一个文件,那么可以不用谢打开的模式,即只写 open('test.txt') 如果使用读了多次

进程间通信(IPC)

流过昼夜 提交于 2020-01-17 01:03:50
进程间通信(Interprocess communication) 一、概述: 进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。进程间通信是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息。这使得一个程序能够在同一时间里处理许多用户的要求。因为即使只有一个用户发出要求,也可能导致一个操作系统中多个进程的运行,进程之间必须互相通话。IPC接口就提供了这种可能性。每个IPC方法均有它自己的优点和局限性,一般,对于单个程序而言使用所有的IPC方法是不常见的。 二、目的: (1)数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。 (2)共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。 (3)通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。 (4)资源共享:多个进程之间共享同样的资源。为了作到这一点,需要内核提供锁和同步机制。 (5)进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。 进程通过与内核及其它进程之间的互相通信来协调它们的行为。Linux支持多种进程间通信(IPC)机制

内核调试工具——strace

a 夏天 提交于 2020-01-16 06:07:33
简介 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。 输出参数含义 root@ubuntu:/usr# strace cat /dev/null execve("/bin/cat", ["cat", "/dev/null"], [/* 22 vars */]) = 0 brk(0) = 0xab1000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29379a7000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) ... brk(0) = 0xab1000 brk(0xad2000) = 0xad2000 fstat(1, {st_mode=S_IFCHR

Python文件

拈花ヽ惹草 提交于 2020-01-13 00:53:08
01. 文件的存储方式 在计算机中,文件是以 二进制 的方式保存在磁盘上的 文本文件和二进制文件 文本文件 可以使用 文本编辑软件 查看 本质上还是二进制文件 例如:python 的源程序 二进制文件 保存的内容 不是给人直接阅读的,而是 提供给其他软件使用的 例如:图片文件、音频文件、视频文件等等 二进制文件不能使用 文本编辑软件 查看 02. 文件的基本操作 2.1 操作文件的套路 在 计算机 中要操作文件的套路非常固定,一共包含 三个步骤 : 打开文件 读、写文件 读 将文件内容读入内存 写 将内存内容写入文件 关闭文件 2.2 操作文件的函数/方法 在 Python 中要操作文件需要记住 1 个函数和 3 个方法 序号 函数/方法 说明 01 open 打开文件,并且返回文件操作对象 02 read 将文件内容读取到内存 03 write 将指定内容写入文件 04 close 关闭文件 open 函数负责打开文件,并且返回文件对象 read / write / close 三个方法都需要通过 文件对象 来调用 2.3 read 方法 —— 读取文件 open 函数的第一个参数是要打开的文件名(文件名区分大小写) 如果文件 存在 ,返回 文件操作对象 如果文件 不存在 ,会 抛出异常 read 方法可以一次性 读入 并 返回 文件的 所有内容 close 方法负责 关闭文件

python文件流

你离开我真会死。 提交于 2020-01-13 00:10:51
打开文件 文件的基本方法 迭代文件内容 打开文件 打开文件,可以使用自动导入的模块io中的函数open。函数open将文件名作为唯一必不可少的参数,并返回一个文件对象。如果只指定一个文件名,则获得一个可读取的文件对象。 如果当前目录中有此文件则可以打开,如果位于其他位置则需要指定完整的路径,如果指定文件不存在,则如下报错。 文件模式 如果需要写入文件,则需要通过指定模式。函数open的参数模式常见有如下: 模式 描述 'r' 读取模式(默认) 'w' 写入模式(文件不存在时创建它) 't' 文本模式(默认,与其他模式结合使用) 'x' 独占写模式,新建一个文件,如果该文件已存在则会报错。 'a' 附加模式(在既有文件末尾继续写入) 'b' 二进制模式(与其他模式结合使用) '+' 打开一个文件进行更新(可读可写,与其他模式结合使用) 默认模式为'rt',读取时将自动替换其他行尾字符('\r','\r\n'),写入时将'\n'替换为系统的默认行尾字符(os.linesep) 要打开一个文本文件进行读写,可使用'r+',但是会将既有内容删除,而'w+'不会。 文件的基本方法 读取和写入 管道重定向输出 随机存取 读取和写入行 关闭文件 文件最重要的功能就是提供和接收数据。在文本和二进制模式下,基本上分别将str和bytes类用作数据。 读取和写入: 使用read读取数据

python 文件操作

隐身守侯 提交于 2020-01-12 06:53:47
  open函数使用一个文件名作为唯一的强制参数,然后返回一个文件对象。 一 r 模式与 rb 模式的区别   r 模式,需要指定编码,windows下默认是gbk编码。rb模式直接读取二进制,与编码没有关系,加上就报错。 with open('1.txt','rb') as f: data=f.read() print(data,type(data))   输出: b'\xe4\xbc\x98\xe9\x85\xb7\n' <class 'bytes'>      如果在 rb模式下,强行加上encoding,报错。 with open('1.txt',encoding='utf-8',mode='rb') as f: data=f.read() print(data,type(data))   报错信息: ValueError: binary mode doesn't take an encoding argument      一般情况下要指定encoding,windows下默认是gbk,如果保存的时候是gbk,不加上encoding是可以的。   以下代码是在windows下运行。 with open('1.txt','r') as f: data=f.read() print(data,type(data))   输出: 优酷 <class 'str'>   因为文件1

python文件操作

六月ゝ 毕业季﹏ 提交于 2020-01-11 03:29:17
Python实现文件的操作: 读写一个文件之前需要打开它: fileobj = open(filename, mode) open()调用参数的解释: * fileobj是open()返回的文件对象; * filename是该文件的字符串名; * mode是指明文件类型和操作的字符串 mode : * r 只读模式(默认) * w 只写模式(不可读,不存在则新创建;存在则重写新内容;) * a 追加模式(可读,不存在则新创建;存在则只追加内容;) "+" 表示同时读写某个文件: * r+ 可读写文件(可读;可写;可追加) * w+ 写读 * a+ 同a * b代表二进制文件 eg:写文件 conten = '''Beautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Flat is better than nested.'''fout = open("file.txt", "w")fout.write(conten)fout.close() 如果源字符串比较大,可以将数据进行分块,直到所有字符被写入: fout = open("file.txt", "w")size = len