打开路径下的文件,获取文件内特定行的内容

1、文件路径path=r'C:\Users\Desktop\'

2、获取路径下的特定文件

for item in os.listdir(path):
    if item == 'file_name':    
        item_path = os.path.join(path, item)  #####获取文件名为file_name的文件路径

3、打开该文件,获取特定行内容

fn3 = open(str(item_path),encoding='gb18030', errors='ignore')###如果文件类型比较特殊,可以加上这两句encoding='gb18030', errors='ignore'
        lines = fn3.readlines()
        fn3.close
        for ls in lines:######遍历文件中每一行
             if 'total time' in ls:#####如果特定行包含total time
                   score = ls.split('=')[1].split()[0]   ##

如果为fn3 = open(str(item_path))

运行后出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x81 in position 7234: illegal multibyte sequence

建议改为

fn3 = open(str(item_path),encoding='gb18030', errors='ignore')

4、全部代码为

path=r'C:\Users\Desktop\'
for item in os.listdir(path):
    if item == 'file_name':    
        item_path = os.path.join(path, item)  #####获取文件名为file_name的文件路径
        fn3 = open(str(item_path),encoding='gb18030', errors='ignore')###如果文件类型比较特殊,可以加上这两句encoding='gb18030', errors='ignore'
        lines = fn3.readlines()
        fn3.close
        for ls in lines:######遍历文件中每一行
             if 'total time' in ls:#####如果特定行包含total time
                   score = ls.split('=')[1].split()[0]   #####获取特定行中想要保存的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要从DWG文件获取特定图层特定颜色,并将其导出到TXT文件,您需要使用AutoCAD软件和AutoLISP编程语言。 以下是实现此目标的步骤: 1. 打开AutoCAD软件并加载您要处理的DWG文件。 2. 打开Visual LISP编辑器,创建一个新的LSP文件。 3. 在LISP文件,编写一个函数来获取指定图层和颜色的所有对象。这可以通过AutoLISP的“ssget”函数和选择集过滤器来完成。以下是一个示例函数: ``` (defun get-objects-on-layer-with-color (layer-name color) (setq selection-set (ssget "_X" `((0 . "LWPOLYLINE") (8 . ,layer-name) (62 . ,color)))) (if selection-set (setq objects (ssname selection-set 0)) (setq objects nil)) objects) ``` 该函数将返回一个选择集,其包含指定图层和颜色的所有多段线对象。如果未找到任何对象,则返回“nil”。 4. 在LISP文件,编写一个函数来将选择集的对象导出到TXT文件。这可以通过AutoLISP的“write-line”函数和循环来完成。以下是一个示例函数: ``` (defun export-objects-to-txt-file (objects file-path) (setq file (open file-path "w")) (setq num-objects (sslength objects)) (setq i 0) (while (< i num-objects) (setq object (entget (ssname objects i))) (setq text (cdr (assoc 1 object))) (write-line text file) (setq i (1+ i))) (close file)) ``` 该函数将选择集的每个对象的文本内容写入到指定的TXT文件。 5. 在LISP文件,编写一个主函数来调用上述两个函数。该函数应该接受DWG文件路径、图层名称、颜色和TXT文件路径作为输入,并根据这些参数执操作。以下是一个示例函数: ``` (defun main (dwg-file layer-name color txt-file) (setq objects (get-objects-on-layer-with-color layer-name color)) (if objects (export-objects-to-txt-file objects txt-file) (alert "No objects found on specified layer and color."))) ``` 该函数将首先获取指定图层和颜色的所有对象,然后将它们导出到指定的TXT文件。如果未找到任何对象,则会显示一个警报。 6. 保存LISP文件并在AutoCAD软件加载它。 7. 调用主函数,传递DWG文件路径、图层名称、颜色和TXT文件路径作为参数。例如: ``` (main "C:/sample.dwg" "Layer1" 1 "C:/output.txt") ``` 此命令将获取DWG文件名为“Layer1”的所有对象,并且颜色为1(红色),并将它们导出到“C:/output.txt”文件。 注意:您需要根据实际情况修改上述代码,以适应您的特定需求。此代码仅供参考。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NDLilaco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值