python批量修改及创建txt

本文介绍了一个简单的文件转换工具,该工具能够读取特定格式的文本文件,并将其转换为另一种格式,适用于硬件描述语言的配置文件转换场景。文章详细解释了如何逐行读取文件、处理文本内容并进行相应的格式转换。

demo版本:

import os

def strs(name):
    print('\n\nfile:'+ name)
    state=1
    prefix='wrispgc 1 '
    streamid=' 0'
    values=[]
    with open(name, 'r', encoding='utf-8') as f:
        for line in f.readlines():
            if line[0]==';' or line[0]=='\n': continue
            line = line.strip('\n')       #去除文本中的换行符
            #addr=line[3:7]
    
            if '#HW' in line :
                prefix='wrreg 1 '+ input('HW baseaddr:')
                streamid=''
                state=3
                
            elif '#DMARW' in line :
                prefix='wrispdma 1 1 '
                streamid=' 0'
                
            elif '#ISP' in line :
                prefix='wrispgc 1 '
                streamid=' 0'
    
    
            if state==3 :
                index=line[6]
                if int(line[6],16)%4==0:
                    addr=hex(int(line[3:7],16)+3)[2:]
    
                if int(line[6],16)%4==1:
                    addr=hex(int(line[3:7],16)+1)[2:]
    
                if int(line[6],16)%4==2:
                    addr=hex(int(line[3:7],16)-1)[2:]
    
                if int(line[6],16)%4==3:
                    addr=hex(int(line[3:7],16)-3)[2:]
    
            elif state==1 or state==2 :
                addr=line[3:7]
    
            addr_zfill=str(addr).zfill(4)    
            value=(prefix+addr_zfill+' '+line[8:10]+streamid+';'+line[3:7]+'='+line[8:]+'\n')
            values.append(value) 
            print(prefix+addr_zfill+' '+line[8:10]+streamid+';'+line[3:7]+'='+line[8:])
    
    return values
    #input()
    f.close()


path = '.'
for name in os.listdir(path):
    
    if name[-4:] == '.txt':
        if name[-3:] == '.py' or '_32bit' in name : continue
        fileList = name.split(".")[0]
        sqlfile = open(fileList+"_32bit.txt", "a")
        values=strs(name)
        
        print(values)
        sqlfile.writelines(values)
    
sqlfile.close()
input('\nend')
 

### 使用Python批量修改多个TXT文件的内容 为了实现这一目标,可以编写一个简单的Python脚本来遍历指定目录下的所有`.txt`文件,并对其进行所需的编辑操作。下面是一个完整的解决方案: #### 导入必要的库 ```python import os ``` #### 定义函数来处理单个文件 定义一个名为 `process_file` 的辅助函数用于读取、修改并写回文件内容。 ```python def process_file(file_path, replacement_dict): with open(file_path, 'r', encoding='utf-8') as file: content = file.read() for old_str, new_str in replacement_dict.items(): content = content.replace(old_str, new_str) with open(file_path, 'w', encoding='utf-8') as file: file.write(content) ``` 此部分代码展示了如何打开文件进行读取和写入操作[^1]。 #### 遍历目录中的所有 `.txt` 文件 创建另一个函数 `batch_edit_txt_files` 来查找给定路径下所有的文本文件并将它们传递给上述的处理器函数。 ```python def batch_edit_txt_files(directory, replacements): for root, _, files in os.walk(directory): for name in files: if name.endswith(".txt"): full_path = os.path.join(root, name) process_file(full_path, replacements) ``` 这段逻辑实现了递归扫描整个文件夹树结构的功能[^2]。 #### 执行批处理任务 最后,在主程序入口处调用该方法即可完成对一批文件的同时更工作。 ```python if __name__ == "__main__": target_directory = "/path/to/your/txt/files" replace_rules = { "old_text": "new_text", # Add more rules here... } batch_edit_txt_files(target_directory, replace_rules) ``` 这里指定了要替换的具体字符串以及待处理的目标文件夹位置[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值