python读取文件和存入文件模板

前言 :
1、例子1.2需求是,添加数据实际是只有年月日,但是数据库里面显示是年月日 00:00:00
例如: 20190101 -》20190101 00:00:00
20190101是.txt的可变值,而00:00:00是固定值

2、例子2.2
信息是通过第三方faker库自动生成的,把生成的值存入txt文件夹

1、读取python文件模板

f = open('D://qq//atp//atp//report//date.txt', 'rb')  # 以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读,
line = f.readlines()
for i in line:
    data = i.decode()
    print(data)
f.close()  # 关闭文件

在这里插入代码片
在这里插入图片描述
1.1例子
将读取的变量和数字合起来使用

# 时间是不固定的,后缀加'00:00:00'
f = open('D://qq//atp//atp//report//date.txt', 'rb')  # 以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读,
line = f.readlines()
for i in line:
    data = i.decode()
    print(data+"00:00:00")
f.close()  # 关闭文件

在这里插入图片描述
1.2 时间在一行去显示

from datetime import datetime

def get_date(date_string: str, from_format: str = '%Y-%m-%d %H:%M:%S', to_format: str = '%Y/%m/%d %H:%M:%S'):
   try:
      return datetime.strptime(date_string, from_format).strftime(to_format)
   except ValueError as ve:
      return date_string

def ReadLine(file, line: int = None, mode='r+', encode='utf-8'):
   try:
      with open(file=file, mode=mode, encoding=encode) as f:
         lines = f.readlines()
         if line is None:
            return lines
         else:
            return lines[line]
   except IndexError as ie:
      return None
   except UnicodeDecodeError as ud:
      return None
   except FileNotFoundError as fnf:
      return None
if __name__ == '__main__':
   file_path = 'D://qq//atp//atp//report//date.txt'
   for line in ReadLine(file_path):
      dateline = get_date(line.replace('\n',''),'%Y/%m/%d','%Y/%m/%d 00:00:00')
      print(dateline)

在这里插入图片描述
我们可以当模板去使用,只需要改变时间的.txt文本就可以

2、保存python文件模板

data = open(r'D://qq//atp//atp//report//hello.txt', 'w')  # 以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读,
txt = "hello"
data.write(txt)
data.close()  # 关闭文件

在这里插入图片描述
2.1例子
将faker与存入文件搭配使用

from faker import Faker
fake=Faker("zh-CN")
data = open(r'D://qq//atp//atp//report//hello.txt', 'w+')  # 以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读,
for i in range(10):
    na = fake.name()
    data.write(na)#写入内容可以根据个人情况取改变,我的na是姓名的意思
data.close()  # 关闭文件

在这里插入图片描述

备注:数据然在一堆,我们换行来处理

from faker import Faker
fake=Faker("zh-CN")
data = open(r'D://qq//atp//atp//report//hello.txt', 'w+')  # 以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读,
for i in range(10):
    na = fake.name()
    data.write(na+"\n")#写入内容可以根据个人情况取改变,我的na是姓名的意思
data.close()  # 关闭文件

在这里插入图片描述
2.2如果我们的数据是多行,我们的模板如下

from pypinyin import lazy_pinyin
from faker import Faker
import random
fake=Faker("zh-CN")
data = open(r'D://qq//atp//atp//report//hello.txt', 'w')
for i in range(10):
    na = fake.name()
    pinyin = ''.join(lazy_pinyin(na))
    phone=fake.phone_number()
    bir=fake.date_time_this_month(before_now=True, after_now=False, tzinfo=None)#本月
    money=random.randint(500000.00, 2000000.00)
    sex1=random.choice(['M', 'F'])
    has='N'
    data.write(na + '\t' + fake.phone_number() + '\n')#只需要拼值,这里的na是姓名 number是手机号
data.close()  # 关闭文件

在这里插入图片描述

2.3 信息存入excle文件

from pypinyin import lazy_pinyin
from faker import Faker
import random
fake=Faker("zh-CN")
data = open(r'D://hello1.xls', 'w')
for i in range(10):
    na = fake.name()
    pinyin = ''.join(lazy_pinyin(na))
    phone=fake.phone_number()
    bir=fake.date_time_this_month(before_now=True, after_now=False, tzinfo=None)#本月
    money=random.randint(500000.00, 2000000.00)
    sex1=random.choice(['M', 'F'])
    has='N'
    data.write(na + '\t' + fake.phone_number() + '\n')#只需要拼值,这里的na是姓名 number是手机号
data.close()  # 关闭文件

在这里插入图片描述

3、文件的属性意义

r+具有读写属性,从文件头开始写,保留原文件中没有被覆盖的内容;

w+具有读写属性,写的时候如果文件存在,会被清空,从头开始写。

r 打开只读文件,该文件必须存在。
  r+ 打开可读写的文件,该文件必须存在。
  w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
  w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
  a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
  a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
  上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。
————————————————
版权声明:本文为CSDN博主「cathyspring」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cathyspring/article/details/79444242

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值