read

python3(三十五)file read write

蹲街弑〆低调 提交于 2019-11-30 08:02:37
""" 文件读写 """ __author__on__ = 'shaozhiqi 2019/9/23' # !/usr/bin/env python3 # -*- coding: utf-8 -*- # 读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符 f = open('D:/temp/shao.txt', 'r', encoding='UTF-8') print(f.read()) f.close() # 执行结果 # 1.ashahh # 2.343erer # 文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的 # ---------------------------------------------------------- # 反之文件不存在的异常 try: f = open('D:/temp/shao.txt', 'r', encoding='UTF-8') print(f.read()) finally: if f: f.close() # ----------------------------------------------------------- # 简化上述方法 # 这和前面的try ... finally是一样的,但是代码更佳简洁,并且不必调用f

python-------文件操作

南笙酒味 提交于 2019-11-30 07:44:50
一、文件处理流程   1.打开文件,得到文件句柄并赋值给一个变量   2.通过句柄对文件进行操作   3.关闭文件 r模式,默认模式,文件不存在则报错 w模式,文件不存在则创建,文件存在则覆盖 a模式,文件不存在则创建,文件存在则不会覆盖,写内容会以追加的方式写(写日志文件的时候常用),追加模式是一种特殊的写模式 b(rb,wb,ab)模式:不用加encoding:utf-8 1 f=open('c.txt','rb') 2 # print(f.read()) 3 print(f.read().decode()) 4 5 f=open('d.txt','wb') 6 f.write('啦啦啦'.encode('utf-8')) 7 f.close() 二、基本操作 1.文件打开模式   文件句柄=open('文件路径',‘模式’) 打开文件时,需要指定文件路径和以什么方式打开文件。 打开文件的模式有: r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】 w,只写模式【不可读;不存在则创建;存在则清空内容】 x, 只写模式【不可读;不存在则创建,存在则报错】 a, 追加模式【可读; 不存在则创建;存在则只追加内容】 1 # #只读模式 2 # f=open(r'c.txt',encoding='utf-8') 3 # # print('====>1',f.read()) 4

小w的铁路图「多校联考 2019」

醉酒当歌 提交于 2019-11-30 06:22:28
题意 给定一张有向图,对于每一条边,求删去该边后两端点最短路长度。 思路 数据过水,直接bfs就过了。 代码 #include <bits/stdc++.h> using namespace std; namespace StandardIO { template<typename T>inline void read (T &x) { x=0;T f=1;char c=getchar(); for (; c<'0'||c>'9'; c=getchar()) if (c=='-') f=-1; for (; c>='0'&&c<='9'; c=getchar()) x=x*10+c-'0'; x*=f; } template<typename T>inline void write (T x) { if (x<0) putchar('-'),x*=-1; if (x>=10) write(x/10); putchar(x%10+'0'); } } using namespace StandardIO; namespace Project { const int N=1001; int n,m; int cnt; int head[N]; struct node { int to,next; } edge[100001]; int a[100001],b[100001]; int

几行Python代码快速解析、整理上万份数据文件

六眼飞鱼酱① 提交于 2019-11-30 05:45:48
在这个世界上,人们每天都在用 Python 完成着不同的工作。而文件操作,则是大家最常需要解决的任务之一。使用 Python,你可以轻松为他人生成精美的报表,也可以用短短几行代码快速解析、整理上万份数据文件。 当我们编写与文件相关的代码时,通常会关注这些事情: 我的代码是不是足够快?我的代码有没有事半功倍的完成任务? 在这篇文章中,我会与你分享与之相关的几个编程建议。我会向你推荐一个被低估的 Python 标准库模块、演示一个读取大文件的最佳方式、最后再分享我对函数设计的一点思考。 下面,让我们进入第一个“模块安利”时间吧。 **注意:**因为不同操作系统的文件系统大不相同,本文的主要编写环境为 Mac OS/Linux 系统,其中一些代码可能并不适用于 Windows 系统。 建议一:使用 pathlib 模块 如果你需要在 Python 里进行文件处理,那么标准库中的 os 和 os.path 兄弟俩一定是你无法避开的两个模块。在这两个模块里,有着非常多与文件路径处理、文件读写、文件状态查看相关的工具函数。 让我用一个例子来展示一下它们的使用场景。有一个目录里装了很多数据文件,但是它们的后缀名并不统一,既有 .txt ,又有 .csv 。我们需要把其中以 .txt 结尾的文件都修改为 .csv 后缀名。 我们可以写出这样一个函数: 在学习过程中有什么不懂得可以加我的

[USACO12DEC]牛奶的路由Milk Routing

痴心易碎 提交于 2019-11-30 05:41:00
洛咕 题意:农民约翰的农场有一套老旧的管网,管网由M条管道(1<=M<=500)构成,用于将牛奶从谷仓运到储奶罐.他想在明年移除和更新大部分管道,但他想原封不动地保留一条完整的路径,这样他仍然可以把牛奶从谷仓输送到储罐.管网由N个节点(1<=N<=500)组成,每个点都可以作为一组管道的端点.结点1是谷仓,结点N是储罐。M条双向管道中的每一条都连接一对节点,并且都有一个延迟值(牛奶达到管的另一端的用时)和容量值(单位时间内可以稳定通过管道的牛奶量)。多条管道可以连接同一对节点.对于一条连接谷仓与储罐的路径,路径的延迟等于沿途所有管道的延迟之和,路径的容量等于沿途管道最小的容量(因为这是制约牛奶运送的“瓶颈”).如果约翰通过一条延迟为L、容量为C的管道运送X个单位的牛奶,需要的时间为L+X/C.给出约翰的管网结构,请帮助他选择一条路径,使得他从谷仓到储罐运送X个单位牛奶的总时间最少. 分析:刚开始看题面还以为是网络流呢,然后问题随机一转?就是一道最短路题了.有点像 通往奥格瑞玛的道路 ,但是这题还容易些,不需要二分答案,而是直接枚举最小容量即可.枚举最小容量之后跑最短路即可. #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<queue>

Pwn中的write()函数和read()函数

為{幸葍}努か 提交于 2019-11-30 04:16:11
1、write() 函数定义:ssize_t write (int fd, const void * buf, size_t count); 函数说明:write()会把参数buf所指的内存写入count个字节到参数放到所指的文件内。 返回值:如果顺利write()会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno中。 2、read() 函数定义:ssize_t read(int fd, void * buf, size_t count); 函数说明:read()会把参数fd所指的文件传送count 个字节到buf 指针所指的内存中。 返回值:返回值为实际读取到的字节数, 如果返回0, 表示已到达文件尾或是无可读取的数据。若参数count 为0, 则read()不会有作用并返回0。 注意:read时fd中的数据如果小于要读取的数据,就会引起阻塞。 来源: https://www.cnblogs.com/h4y0/p/11558566.html

【ARC073F】Many Moves

时光毁灭记忆、已成空白 提交于 2019-11-30 03:27:28
题目 一个显然的 \(dp\) ,设 \(dp_{i,j}\) 表示其中一个棋子在 \(x_i\) 点,另一个棋子在 \(j\) 点的最小花费 显然 \(dp_{i,j}\) 有两种转移 第一种是把 \(x_i\) 上的棋子移到 \(x_{i+1}\) ,那么那么就是 \(dp_{i+1,j}=\min(dp_{i,j}+|x_{i+1}-x_i|)\) 第二种就是把 \(j\) 上的棋子移动到 \(x_{i+1}\) ,那么就是 \(dp_{i+1,x_i}=\min(dp_{i,j}+|j-x_{i+1}|)\) 这是 \(O(nQ)\) 的,考虑优化 发现第一种转移形式非常固定,于是直接整体 \(dp\) 。第一种转移其实就是全局加,我们维护一个加法标记就可以了。 第二种转移都是转移到 \(dp_{i+1,x_i}\) ,绝对值看起来比较讨厌,考虑将绝对值拆开,当 \(j\geq x_{i+1}\) 时, \(dp_{i+1,x_i}=dp_{i,j}+j-x_{i+1}\) ;当 \(j\leq x_{i+1}\) 时, \(dp_{i+1,x_i}=dp_{i,j}-j+x_{i+1}\) ,于是考虑直接使用线段树来维护 \(dp_{i,j}+j\) 和 \(dp_{i,j}-j\) 的最小值,查一下这两个区间就能转移了。 代码 #include<bits/stdc++

day 009总结

China☆狼群 提交于 2019-11-30 01:50:40
文件处理 什么是文件处理 修改存储的信息 什么是文件 操作系统提供的虚拟概念,存储信息(用二进制存储信息) 操作文件的流程 1.打开文件 f=open(r'D:\上海python12期视频\python12期视频\day 09\test.py','w',encoding='utf-8') 2.修改/读取文件 f.write(''' 孩儿立志出湘关,学不成名誓不还 埋骨何须桑之地,人生无处不青山 ''') 3.保存文件 f.flush()#快速保存,可以不使用 4.关闭文件:python是通过操作系统操作文件 f.close()#告诉操作系统关闭文件 文件的三种打开模式 读取:rt read_text 读取文本内容 只读 f=open(r'D:\上海python12期视频\python12期视频\day 09\test.py','rt',encoding='utf-8') data=f.read()#读取所有文本内容 print(data) print(f.readable())#判断是否可读 print(f.writeable())#判断是否可写 仅作了解 print(f.readline())#一行一行读取 print(f.readlines())#读取所有行放入列表 循环读出文本内容 for i in f.read():#循环出一个个字符 print(i) for i in f

博客整理day09

筅森魡賤 提交于 2019-11-30 01:42:37
目录 Python day09 一 文件处理 二 文件打开的三种模式 r模式 w模式 a模式 三 绝对和相对路径 四 with管理上下文 五 文件的高级应用 可读可写 文件内指针移动 六 文件修改的两种方式 方法一 方法二 Python day09 一 文件处理 什么是文件 操作系统提供的虚拟概念,存储信息(用二进制存储信息) 操作文件的流程 # 1. 打开文件 # ①文件路径②打开模式,w-->write③ # print('D:\上海python12期视频\python12期视频\day 09\test.py') # print('D:\上海python12期视频\python12期视频\day 09\\test.py') # \\t--》第一个\会让第二个\失去意义 # print(r'D:\上海python12期视频\python12期视频\day 09\test.py') # r会让内部所有的\失效 f = open(r'D:\上海python12期视频\python12期视频\day 09\test.py','w',encoding='utf8') # 2. 修改/读取文件 f.write(''' 孩儿立志出湘关,学不成名誓不还 埋骨何须桑之地,人生无处不青山 ''') # 3. 保存文件 f.flush() # 快速保存,你可以不使用 # 4. 关闭文件:

博客09

懵懂的女人 提交于 2019-11-30 00:59:22
目录 1. 文本处理 1. 什么是文本处理 2. 什么是文件 3. 操作文件的流程 2. 文本文件的三种操作模式 3. 文件的两种打开方式 1. t 模式 2. b 模式 4. 绝对路径和相对路径 5. with管理上下文 6. 文本文件处理的高级应用 1. 三种可读可写的模式 2. 光标的高级应用 (1)字节与字符 (2)移动光标的三种方法(以字节为单位) (3)移动光标(以字符为单位) read 1. 文本处理 1. 什么是文本处理 修改存储的信息 2. 什么是文件 操作系统提供的一个虚拟单位,用来存储信息(用二进制存储信息) 3. 操作文件的流程 打开文件 open('路径','操作模式',encoding = '字符编码') 读取/修改文件 r / w / a 保存文件 f.flush() 关闭文件 f.close() 2. 文本文件的三种操作模式 ==重点:对文件的操作,不管是读取还是写入,光标都会移动。== 就是说,每读一次,光标就往后/下移相应的位数一次。文本读一行少一行 读取 r :只读 清空写 w :只写 追加写 a :只写 f = open('D:\python12期视频\1.txt','r',encoding = 'utf8') f.read() f.readline() # 读取光标所在的那一行 f.readlines() #一次性全部按行读取,存入列表中