day10-文件操作

open()函数

# import requests
# response = requests.get('https://img1.baidu.com/it/u=154097372,2057783014&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500')
# with open('girl.jpg',mode='wb')as f:
#     f.write(response.content)

 seek的使用

f = open("filetest2.txt", mode="rb")
'''
filetest2.txt
helloworld
你好
'''


# 改变指针位置
"""
offset: 偏移量
whence: 0 从文件头开始  1 当前位置开始  2 文件尾
注意,当offset值非0时,Python要求文件必须要以二进制格式打开,
否则会抛出 io.UnsupportedOperation 错误。
"""
print(f.tell())
# 读取一个字节,文件指针自动后移1个数据
print(f.read(1))
print(f.tell())
# 将文件指针从文件开头,向后移动到 5 个字符的位置
f.seek(5)
print(f.tell())
print(f.read(1))

0
b'h'
1
5
b'w'

进程已结束,退出代码0

作业

print()
"""
定义一个函数,向函数内传入形参num, num1, num2,
如果num小于100,则计算num1 和 num2的积并打印;
否则计算num1和num2的和,然后打印输出。
"""
num = int(input('请输入你的num值:'))
num1 = int(input('请输入你的num1值:'))
num2 = int(input('请输入你的num2值:'))
def asd(num, num1, num2):
    if num < 100:
        result = num1 * num2
        return result
    else:
        result = num1 + num2
        return result

print(asd(num, num1, num2))

请输入你的num值:44
请输入你的num1值:11
请入你的num2值:22
242

进程已结束,退出代码0

作业10

"""
1、编写一个 Python 函数,接受一个正整数 n 作为参数,返回斐波那契数列的前 n 个数字。

斐波那契数列是一个数列,其中每个数字都是前两个数字的和,第一个数字是 0,第二个数字是 1,例如:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

使用递归完成

2、用python创建文件data.txt,共100行,每行循环存放一个1~100之间的整数。
"""
def fei(n):
    if n == 0:
        return 0
    elif n == 1 or n == 2:
        return 1
    else:
        return fei(n - 1) + fei(n - 2)
print (fei(4))

import random
f = open('data.txt', mode='w', encoding='utf-8')
for i in range(1, 101):
    f.write(str(random.randint(1,100)))
    f.write('\n')
    

3

进程已结束,退出代码0

列表中字典数据排序

# 列表中的字典排序
# 需求:假设我们需要对字典中的年龄进行排序
user_list = [
    {"name": 'zhangsan1', 'age': 18},
    {"name": 'lisi1', "age": 19},
    {"name": 'wangwu1', "age": 17}
]

def getAge(element):   # element 元素
    return element['age']

# 传递给key参数的是一个函数,它指定可迭代对象中的每一个元素来按照该函数进行排序
user_list.sort(key=getAge,reverse=True)
print(user_list)


# 我们需要使用匿名函数,使用sort函数中的key这个参数,来指定字典比大小的方法
# reverse参数控制升序与降序排列
user_list.sort(key=lambda x:x['age'],reverse=True)
print(user_list)

3

进程已结束,退出代码0

匿名函数

# def add(x, y):
#     return x+ y
# print(add(3,4))
#
#
# add = lambda x,y:x+y
# print(add(3,4))

import random   # 随机模块的库

# 无参数
# sdds = lambda: random.random()  # (0,1)
# print(sdds())

# 一个参数
# fun1 = lambda x: x
# print(fun1('hello python'))

# # 默认参数 (缺省参数)
# fun2 = lambda a, b, c=100: a + b + c
# print(fun2(10,19,1000))
#
# # 可变参数之args   元组 ()
# fun3 = lambda *args: args
# print(fun3((1,2,3,4,5)))
#
# # 可变参数之kwargs
# fun4 = lambda  **kwargs: kwargs
# print(fun4(name='yueyue',age=18,height='178cm'))
#
# 带判断的lambda表达式
asd = lambda x: x if x > 10 else 10
print(asd(5))
#### 它是以下带有def和return 关键字的普通函数的更简单版本:
def fun(x):
    if x > 10:
        return x
    else:
        return 10
print(fun(5))

10
10

进程已结束,退出代码0

批量重命名

import os
print(os.getcwd())
# 先切换路径
os.chdir('testsad')
print(os.getcwd())
# 遍历此路径下的文件
file_list = os.listdir(os.getcwd())
print(file_list)
for file in file_list:
    # 循环拼接
    new_name = "python_" + file
    # print(new_name)
    os.rename(file, new_name)

['python_test1', 'python_test2', 'python_test3']

进程已结束,退出代码0

文件与文件夹操作

import os

print(os.getcwd())
# os.chdir('D:')
# print(os.getcwd())
# os.rmdir('sss')  # 不区分大小写
# os.makedirs('aaa\\bb\\ccc')


if not os.path.exists('filetest.txt'):
    os.mkdir('filetest.txt')

C:\Users\LENOVO\PycharmProjects\pythonProject\day10文件操作

进程已结束,退出代码0

文件备份

old_name = input("请输入文件名:")
index = old_name.rfind(".")
new_name = old_name[:index]+"备份"+old_name[index:]
# 老文件
old_f = open(old_name,"r")
# 新文件
new_f = open(new_name,"w")
# 读取老文件中所有的数据
cont = old_f.readlines()
print(cont)
# 写入读取的所有数据
new_f.writelines(cont)

old_f.close()
new_f.close()

文件对象方法

# f = open('filetest.txt', mode='w', encoding='utf-8')
# """w模式如果文件不存在会自动创建文件   如果存在则会继续后面的代码操作 """
# print(f.writable())
# # f.write('123456')
# f.writelines('123\n456')   # 将之前文件的东西进行覆盖

# 创建并打开一个文件  file
# f = open('filetest.txt', mode='a', encoding='utf-8')
# # 对文件的操作
# print(f.write('\n123456'))  # 长度
# f.writelines('\n123\n456')
#
# # 关闭文件
# f.close()
# 使用r模式去打开文件是 文件是必须存在的 如果文件不存在则对应报filenotfounderror错
# f = open('filetest2.txt', mode='r', encoding='utf-8')
# # 判断是否可读
# print(f.readable())
# # 逐行读取
# # print(f.readline(),end='')
# # 读取所有 返回值为列表
# # print(f.readlines())
# # # 读取文件全部内容
# print(f.read())

f = open("filetest2.txt", mode="r", encoding="utf-8")
'''
filetest2.txt
helloworld
你好
'''
# 汉字代表三个字节 换行代表两个字节  字母数字代表的是一个字节  3.10以上的版本可能有一点点不一样
print(f.tell())
print(f.readline(), end="")
print(f.tell())
print(f.readline())
print(f.tell())

0
helloworld
12
你好
18

进程已结束,退出代码0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值