91黄动漫 I 欧美 日韩 国产 成人 在线 I a级成人毛片 I 农村黄色片 I 男生捅女生的肌肌 I 精品99一区二区三区 I 妃光莉av I 日日夜夜操操 I 性中国古装videossex I 久久不卡av I 美女高潮动态图 I 极品美女开粉嫩精品 I 牛牛精品一区二区 I 91精品福利视频 I 成人刺激视频 I 91国内精品视频 I 中国一级特黄毛片大片 I 校长狠狠挺进校花体内小说 I 欧美激情黄色片 I 欧美久久久一区 I 爱豆国产剧免费观看大全剧苏畅 I 麻豆国产人妻欲求不满谁演的 I 亚洲一区二区在线免费观看视频 I 国产超碰av人人做人人爽 I 精品国产第一国产综合精品 I 久久免费看av I 欧美一区二区三区白人 I 国产精品夫妻激情 I 校花被肉干高h潮不断 I 欧美最猛黑人xxxx黑人表情 I 国产欧美日韩一区二区搜索 I 极品女神露脸呻吟啪啪 I 人人天天久久 I 亚洲动漫在线 I 日本91福利区 I 五月天 桃色 开心 I av在线免费观看国产 I 男人添女人的免费视频 I 夜夜穞天天穞狠狠穞

zmrs163
級(jí)別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 423 個(gè)
工控威望: 574 點(diǎn)
下載積分: 1594 分
在線時(shí)間: 348(小時(shí))
注冊(cè)時(shí)間: 2017-06-12
最后登錄: 2025-12-03
查看zmrs163的 主題 / 回貼
樓主  發(fā)表于: 2025-07-23 17:21
隨著一些機(jī)型轉(zhuǎn)換,我們的程序也需要進(jìn)行轉(zhuǎn)換,一些轉(zhuǎn)換可以通過(guò)軟件自動(dòng)完成,一些轉(zhuǎn)換需要人工進(jìn)行更改。這個(gè)帖子主要討論的是地址變化時(shí)的轉(zhuǎn)換方式。
目前來(lái)說(shuō),三菱的梯形圖可以導(dǎo)出成CSV文件,所有的軟元件在這個(gè)CSV文件中都可以看到。如果我們直接操作這個(gè)CSV文件對(duì)程序進(jìn)行轉(zhuǎn)換,顯然可以更加方便得轉(zhuǎn)程序,因?yàn)槲覀兛梢越柚恍┠_本提升操作效率,一些情況下,地址存在重疊的情況,比如X0改成X10,但是原來(lái)的X10要改成X20,這種情況用軟件批量替換要分兩次走,一個(gè)不注意要進(jìn)行大量返工,以下是我自己寫的python腳本的代碼,自己隨意寫的,有能力有需要的同志可以自己制作類似的,含有FB的我目前還沒(méi)測(cè)試,不過(guò)應(yīng)該問(wèn)題不大,畢竟只是實(shí)參需要替換一下。
import csv

path = r""    #導(dǎo)出程序CSV文件的地址
path2 = r""  #生成一個(gè)文件,包含了所有的軟元件地址,需要手動(dòng)在其中第二列填寫變更后的地址
path3 = r""  #生成的新文件的地址
before_list = []  #原程序所有的地址列表
address_dict = dict()  #存儲(chǔ)映射關(guān)系的字典


# 讀取所有的地址
r = 1
with open(path, mode='r',encoding='utf-16-le') as file:
    for line in file:
        line_splited = line.split('\t')
        if r >= 4:
            add = line_splited[3].strip('"')
            if add != '' and add not in before_list:
                before_list.append(add)
        r += 1


# 生成CSV,存儲(chǔ)所有的地址,需要手動(dòng)在其中第二列填寫變更后的地址
s = input("是否生成TRANS,Y/N")
if s=="Y":
    with open(path2, mode='w',encoding='utf-16-le',newline="") as file:
        csv_writer = csv.writer(file)
        before_list.sort()
        for add in before_list:
            csv_writer.writerow([add])


# 自行填寫TRANS后再讀取,wps保存編碼為ANSI,默認(rèn)好像就是這個(gè)編碼
s = input("任意鍵繼續(xù)讀取TRANS")
with open(path2, mode='r') as file:
    csv_reader = csv.reader(file)
    for row in csv_reader:
        if row[1] != "":
            address_dict[row[0]] = row[1]
for k,v in address_dict.items():
    print(k,v)

# 重新生成程序文件
index = 1
with open(path, mode='r',encoding='utf-16-le') as file:
    new_file = open(path3,mode='w',encoding='utf-16-le')
    for line in file:
        if index >= 4:
            r = [s.strip("\"") for s in line.split('\t')]
            old_address = r[3]  #替換主要由這三行進(jìn)行
            new_address = address_dict.get(r[3],r[3])
            new_file.write(line.replace(old_address,new_address))
        else:
            new_file.write(line)
        index += 1

new_file.close()
linan7921
龍的傳人
級(jí)別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 125 個(gè)
工控威望: 2602 點(diǎn)
下載積分: 1865 分
在線時(shí)間: 100(小時(shí))
注冊(cè)時(shí)間: 2020-05-21
最后登錄: 2025-12-05
查看linan7921的 主題 / 回貼
1樓  發(fā)表于: 2025-08-01 16:01