今天把饭倒进黄焖鸡里,同桌上楼就拉肚子

今天把饭倒进黄焖鸡里,同桌上楼就拉肚子

今日主要内容

1. 文件操作 open() 文件句柄

open()打开一个文件, 获取的是文件句柄
read()
readline()
readlines()
write()

for line in f: 遍历文件中的内容

路径的问题:
	1. 绝对路径
		从磁盘根目录寻找
	2. 相对路径
		从当前程序运行的文件夹内寻找

2. 文件操作的相关模式Mode

r: 只读
w: 只写
a: 追加
r+:
w+:
a+:

非文本文件
rb
wb
ab

r+b
w+b
a+b

3. 相关操作

1. seek()移动光标(重点)
	seek(0) 开头
	seek(0,2) 移动到末尾
2. tell() 获取光标所在的位置
3. truncate() 截断文件

4. 文件修改

with open(xxx) as 句柄, 	open(xxxxx)as xxx
不用手动关闭文件句柄

文件修改的步骤
	1. 从源文件中读取数据。
	2. 写入到副本文件中
	3. 删除源文件
	4. 把副本重命名成源文件
import os
os.remove()
os.rename()

是真的有点晕了

1,有如下文件,a1.txt,里面的内容为:

老男孩是最好的培训机构,

全心全意为学生服务,

只为学生未来,不为牟利。

我说的都是真的。哈哈

分别完成以下的功能:

a, 将原文件全部读出来并打印。

s = ‘‘‘老男孩是最好的培训机构,

全心全意为学生服务,

只为学生未来,不为牟利。

我说的都是真的。哈哈‘‘‘

with open(r‘a1.txt‘, mode=‘w‘, encoding=‘utf-8‘)as f:

for n in s:

f.write(n)

b, 在原文件后面追加一行内容:信不信由你,反正我信了。

add = ‘信不信由你,反正我信了。‘

with open(r‘a1.txt‘, mode=‘a‘, encoding=‘utf-8‘)as f:

f.writelines(add)

c, 将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了。

with open(r‘a1.txt‘, mode=‘r+‘, encoding=‘utf-8‘)as f:

print(f.read())

f.write(add)

d, 将原文件全部清空,换成下面的内容:

每天坚持一点,

每天努力一点,

每天多思考一点,

慢慢你会发现,

你的进步越来越大。

s = ‘‘‘每天坚持一点,

每天努力一点,

每天多思考一点,

慢慢你会发现,

你的进步越来越大。‘‘‘

with open(r‘a1.txt‘, ‘w‘, encoding=‘utf-8‘)as f:

f.write(s)

e, 将原文件内容全部读取出来,并在‘我说的都是真的。哈哈’这一行的前面加一行,‘你们就信吧~’然后将更改之后的新内容,写入到一个新文件:a1.txt。

with open(‘a1.txt‘, mode=‘r‘, encoding=‘utf-8‘)as f,         open(‘a2.txt‘, mode=‘w‘, encoding=‘utf-8‘)as f2:
    n = 0
    while 1:
        n += 1
        if f.readline() == ‘我说的都是真的。哈哈‘:
            break
    f.seek(0)
    m = 0
    while m < n - 1:
        m += 1
        f2.write(f.readline())
    f2.write(‘你们就信吧~\n‘)
    f2.write(f.readline())

2,有如下文件,t1.txt, 里面的内容为:

葫芦娃,葫芦娃,

一根藤上七个瓜

风吹雨打,都不怕,

啦啦啦啦。

我可以算命,而且算的特别准:

上面的内容你肯定是心里默唱出来的,对不对?哈哈

分别完成下面的功能:

a, 以r + 的模式打开原文件,判断原文件是否可读,是否可写。

with open(‘t1.txt‘, ‘r+‘, encoding=‘utf-8‘)as f:

if f.readable():

print(‘这文件可读‘)

if f.writable():

print(‘这文件可写‘)

b, 以r的模式打开原文件,利用for循环遍历文件句柄。

with open(‘t1.txt‘, ‘r‘, encoding=‘utf-8‘)as f:

for n in f:

print(n.strip())

c, 以r的模式打开原文件,以readlines()方法读取出来,并循环遍历readlines(), 并分析b, 与c有什么区别?深入理解文件句柄与readlines()结果的区别。

with open(‘t1.txt‘, ‘r‘, encoding=‘utf-8‘)as f:

lst = f.readlines()

for n in lst:

print(n.strip())

d, 以r模式读取‘葫芦娃,’前四个字符。

with open(‘t1.txt‘, mode=‘r‘, encoding=‘utf-8‘)as f:

print(f.read(4))

e, 以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符。

with open(‘t1.txt‘, mode=‘r‘, encoding=‘utf-8‘)as f:

print(f.readline().strip())

f, 以r模式打开文件,从‘风吹雨打.....’开始读取,一直读到最后。

with open(‘t1.txt‘, mode=‘r‘, encoding=‘utf-8‘)as f:

k = 0

for n in f:

k += 1

if ‘风吹雨打‘ in n:

break

f.seek(0)

while k - 1:

k -= 1

f.readline()

for n in f:

print(n)

g, 以a + 模式打开文件,先追加一行:‘老男孩教育’然后在从最开始将原内容全部读取出来。

with open(‘t1.txt‘, mode=‘a+‘, encoding=‘utf-8‘)as f:

f.write(‘\n老男孩教育‘)

f.seek(0)

print(f.read())

h, 截取原文件,截取内容:‘葫芦娃’

with open(‘t1.txt‘, mode=‘r+‘, encoding=‘utf-8‘)as f:

f.truncate(9)

3,文件a.txt内容:每一行内容分别为商品名字,价钱,个数。

apple 10 3

tesla 100000 1

mac 3000 2

lenovo 30000 3

chicken 10 3

通过代码,将其构建成这种数据类型:[{‘name‘: ‘apple‘, ‘price‘: 10, ‘amount‘: 3}, {‘name‘: ‘tesla‘, ‘price‘: 1000000, ‘amount‘: 1}......]并计算出总价钱。

import copy
lst = []
dit = {}
with open(‘a.txt‘, mode=‘r‘, encoding=‘utf-8‘)as f:
    for n in f.readlines():
        dit = {}
        dit[‘name‘] = n.strip().split(‘ ‘)[0]
        dit[‘price‘] = n.strip().split(‘ ‘)[1]
        dit[‘amount‘] = n.strip().split(‘ ‘)[2]
        lst.append(dit)
    print(lst)

4,有如下文件:

alex是老男孩python发起人,创建人。

alex其实是人妖。

谁说alex是sb?

你们真逗,alex再牛逼,也掩饰不住资深屌丝的气质。

将文件中所有的alex都替换成大写的SB(文件的改的操作)。

import os

lst = []
with open(r‘alex.txt‘, mode=‘r‘, encoding=‘utf-8‘)as f:
    for n in f:
        lst.append(n.replace(‘sb‘, ‘SB‘))
with open(‘alex2.txt‘, ‘w‘, encoding=‘utf-8‘)as f:
    for n in lst:
        f.write(n)
os.remove(‘alex.txt‘)
os.rename(‘alex2.txt‘, ‘alex.txt‘)

5,文件a1.txt内容(升级题)

name: apple

price: 10 amount: 3

year: 2012

name: tesla

price: 100000

amount: 1

year: 2013

.......

通过代码,将其构建成这种数据类型:

[{‘name‘: ‘apple‘, ‘price‘: 10, ‘amount‘: 3},

{‘name‘: ‘tesla‘, ‘price‘: 1000000, ‘amount‘: 1}......]

并计算出总价钱。

dit = {}
lst = []
with open(‘a1.txt‘, ‘r‘, encoding=‘utf-8‘)as f:
    for n in f:
        dit = {}
        dit[n.strip().split(‘ ‘)[0].split(‘:‘)[0]] = n.strip().split(‘ ‘)[0].split(‘:‘)[1]
        dit[n.strip().split(‘ ‘)[1].split(‘:‘)[0]] = n.strip().split(‘ ‘)[1].split(‘:‘)[1]
        dit[n.strip().split(‘ ‘)[2].split(‘:‘)[0]] = n.strip().split(‘ ‘)[2].split(‘:‘)[1]
        dit[n.strip().split(‘ ‘)[3].split(‘:‘)[0]] = n.strip().split(‘ ‘)[3].split(‘:‘)[1]
        lst.append(dit)
print(lst)

6,文件a1.txt内容(升级题)

序号 部门 人数 平均年龄 备注

1 python 30 26 单身狗

2 Linux 26 30 没对象

3 运营部 20 24 女生多

.......

通过代码,将其构建成这种数据类型:

[{‘序号‘: ‘1‘, ‘部门‘: Python, ‘人数‘: 30, ‘平均年龄‘: 26, ‘备注‘: ‘单身狗‘},

......]

lst = []
with open(r‘a1.txt‘, ‘r‘, encoding=‘utf-8‘)as f:
   for n in f:
       dict = {}
       dict[‘1‘] = n.split(‘       ‘)[0]
       dict[‘部门‘] = n.split(‘       ‘)[1]
       dict[‘人数‘] = n.split(‘       ‘)[2]
       dict[‘平均数‘] = n.split(‘       ‘)[3]
       dict[‘备注‘] = n.split(‘       ‘)[4]
       lst.append(dict)
print(lst)

争取今晚肝完周末作业吧!!!

原文地址:https://www.cnblogs.com/joy20181017/p/9858657.html

时间: 2024-10-08 16:53:31

今天把饭倒进黄焖鸡里,同桌上楼就拉肚子的相关文章

如何写出《黄焖鸡米饭是怎么火起来的》这样的文章

去年开始研究做爬虫,搞了一套分布式的爬虫系统,主要目标是帮别人做数据采集.后来看到黄焖鸡米饭是怎么火起来的? - 何明科的回答,进而关注了<数据冰山>,发现里面的大数据分析的文章都相当有意思,图表也一个比一个专业. 我当时的表情大约是这样的: 我的天哪,这么神奇吗? 放下手机,操起键盘,正准备也搞上一篇 "大数据分析:郭德纲和女演员的相爱相杀之后,wuli涛涛是如何火起来的".后来转念一想,这不是赤果果的抄袭了,妈妈是怎么教导我的.再说了,以我这样的实力,写了这样的文章,以

【IT界的厨子】家常版本的黄焖鸡

前言: 周末在家,闲来无事, 使用简单的食材,满足家人的味蕾,做出秒杀馆子的黄焖鸡(我是这么认为的).虽然没有厨师的手艺,但为家人做饭,也是一种幸福. 用料: 主料:老母鸡一只,要求店老板剁好 配料: 土豆       一只   姜片       若干   青椒       一只 可选:  辣椒      我家有孩子,不能吃辣,此项列为可选 调料: 老抽,生抽,盐,白糖,料酒 步骤: 1.老母鸡洗净血水  2.姜切片 3.香菇切片,青椒切条状         4.炒糖色(sha 三音),凉油放糖

黄焖鸡

代码 # 商品属性 ITEM = {'ITEM0001': {'name': '黄焖鸡', 'price': 18}, 'ITEM0013': {'name': '肉夹馍', 'price': 6}, 'ITEM0022': {'name': '凉皮', 'price': 8} } # 打折商品列表 DISCOUNT_ITEM = ('ITEM0001', 'ITEM0022') # 满减优惠列表 BREAK_DISCOUNT = {30: 6} BREAK_PRICE_LIST = [30]

为什么绝大部分人都掉进了坑里

原创: 二号头目 九边 4月4日 经济,地理,金融视野下仰望大历史的天空作者:二号头目 有个词,跟“熵增”一样令人着迷,叫内卷化. 第一次听到这个词是在一篇分析清朝经济的文章中,讨论清朝为啥以魔鬼的步伐避开了工业革命的时候,学者们提出了“内卷”的概念. 这是个啥意思呢?这么个逻辑链: 首先,清朝人口太多,人力成本非常非常的低: 所以,不管干啥,都不需要改进技术,通过增加人力就可以解决.比如丝绸和瓷器有利可图,需要扩大再生产,如果在英国,人力太贵,增加一百个人的花费还不如搞台机器来解决,英国人开始

Maven -- 将引用的本地jar文件打进war包里

我们在做maven项目开发中有时候引用了本地第三方包,例如: <dependency> <groupId>org.artofsolving.jodconverter</groupId> <artifactId>jodconverter-core</artifactId> <version>3.0-beta-4</version> <scope>system</scope> <systemPat

【JMeter】JMeter代码里若有外部自定义方法调用需要写进方法体里,否则报错

【菜逼实战】黄焖鸡计算器

一.做个啥?? 计算器大概长这个模样,作用一目了然.. 就是一个简单的计算+显示.毕竟刚学,第1次独立小练习,啥玩意儿封装继承多态,我是统统不考虑,先实现了再说. 二.遇到的坑 功能很简单,基本没什么坑textbox的text,变成double值,再计算.然后,把计算结果(double)再变回string,显示给个人计算的lable.text前半部分简单,但是后半部分,出现了一个错误:然后开始查,其他类型转换成string的方法,然后找到了一个新的方法: 但是,总觉得可以直接用ToString的

有n个人正在饭堂排队买海北鸡饭。每份海北鸡饭要25元。奇怪的是,每个人手里只有一张钞票(每张钞票的面值为25、50、100元),而且饭堂阿姨一开始没有任何零钱。请问饭堂阿姨能否给所有人找零(假设饭堂阿姨足够聪明)

思路: 一个数组存储n个人的费用,另一个集合来存所要找的零钱,考虑顺序 代码: import java.util.ArrayList; import java.util.Scanner; public class Main{ public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); Scanner sc = new Scanner(System.in); int n =

数论(欧几里得,扩展欧几里得,欧拉)

今天考试了,三道题分别是求欧拉,逆欧拉,欧拉求和 对于我这样的蒟蒻来说,我选择狗带. 爆零稳稳的. 现在整理一下: φ(n)(欧拉函数值)为不大于n的正整数中与n互质的数的个数: 有几条这样的性质: 1.欧拉函数是积性函数,但不是完全积性函数,即φ(mn)=φ(n)*φ(m)只在(n,m)=1时成立. 2.对于一个正整数N的素数幂分解N=P1^q1*P2^q2*...*Pn^qn. φ(N)=N*(1-1/P1)*(1-1/P2)*...*(1-1/Pn). 3.除了N=2,φ(N)都是偶数.