python读取多个TXT(包含为空)写入一个TXT

需要合并文件如图:

文件内容如下:

存在特殊情况(文件可能存在空),需要写入"0 0 0 0":

import os

flie_path="/home/"#需要合并的txt文件的绝对路径,由于要排序,后面会加上.txt
path_list=os.listdir(flie_path)
path_name=[]
for i in path_list:
    path_name.append(i.split(".")[0])
#文件读入时是乱序的,需要按0001.txt,0002.txt顺序写入,sort排序
path_name.sort()
i=1
for i in range(len(path_name)):
    path_name1=flie_path+path_name[i]+'.txt'
    print path_name1
    with open(path_name1) as f:
        #文件为空的情况,写入"0 0 0 0",并转行
        if not os.path.getsize(path_name1):
            with open("/home/new.txt",'a+') as mom:#新的txt文件路径
                line="0 0 0 0"
                mom.write(line)
                mom.write('\r\n')
        #文件不为空则写入读取到的内容
        for line in f.readlines():

            with open("/home/new.txt",'a+') as mom:/home/new.txt
                mom.write(line)

os.path.getsize()返回文件的字节数,如果为0,则代表空

#如果不是为1,也就是为0的时候
if not os.path.getsize(path_name1):

最后结果(如果不注意文件为空的情况,则会出现合并后新文件行数少于旧的文件数情况)

文件写入函数: 1. `write()` 函数:用于将字符串写入文件。如果文件不存在,则会创建一个文件。如果文件已经存在,则会覆盖原有内容。写入的内容必须是字符串类型。 2. `writelines()` 函数:用于将多个字符串写入文件。与 `write()` 函数不同的是,`writelines()` 函数可以一次写入多个字符串,每个字符串必须以换行符 `\n` 结尾。 文件读入函数: 1. `read()` 函数:用于从文件读取指定数量的字符或者全部内容,并返回字符串类型的数据。如果未指定读取数量,则默认一次性读取全部内容。 2. `readline()` 函数:用于从文件读取一行内容,并返回字符串类型的数据。如果文件已经读取到结尾,则返回空字符串。 3. `readlines()` 函数:用于从文件读取所有行,并返回一个列表。列表中的每个元素对应文件中的一行内容,每行的末尾会包含一个换行符 `\n`。 例如,使用 `write()` 函数将字符串写入文件: ```python with open('example.txt', 'w') as f: f.write('Hello, world!') ``` 使用 `read()` 函数读取文件中的全部内容: ```python with open('example.txt', 'r') as f: content = f.read() print(content) ``` 输出结果为: ``` Hello, world! ``` 使用 `readlines()` 函数读取文件中的所有行: ```python with open('example.txt', 'r') as f: lines = f.readlines() print(lines) ``` 输出结果为: ``` ['Hello, world!'] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值