脚本循环遍历目录中的文件

2023-12-06

我有以下代码,它使用我需要的数据从 shp.file 创建我需要的 txt 文件。我有一个名为 profile 的文件夹,其中包含一些名为(profil1.shp、profil2.shp、profil3.shp 等)的形状文件。我想知道如何创建一个循环,以便脚本为每个文件创建一个具有相同名称的 txt 文件(例如,对于 profil1.shp 创建 profil1.txt,profil2.shp 创建 profil2.txt 等)。

import ogr, os, sys, osr

os.chdir('..\profiles')

file = open('profil1.txt', 'w')

driver = ogr.GetDriverByName('ESRI Shapefile')

datasource = driver.Open('profil1.shp', 0)
if datasource is None:
  print 'Could not open file'
  sys.exit(1)

layer = datasource.GetLayer()

feature = layer.GetNextFeature()
while feature:

  id = feature.GetFieldAsString('ID')
  Distanta = feature.GetFieldAsString('DIST')
  Z = feature.GetFieldAsString('Z')
  geom = feature.GetGeometryRef()
  x = str(geom.GetX())
  y = str(geom.GetY())

  file.write(id + " " + Distanta + " " + "[X]:" + " " + x + ' ' + '[Y]:' + " "  + y + " " + " " + "[Z]" + Z + " " +  "\n")

  feature.Destroy()
  feature = layer.GetNextFeature()

datasource.Destroy()
file.close()

编辑:代码返回无法打开文件。包含文件及其各自名称的文件夹的照片。可以肯定地认为我做错了什么。

import ogr, os, sys, osr,os.path
os.chdir = ('C:\Users\Andrei\Desktop\profil3')
l = os.listdir('C:\Users\Andrei\Desktop\profil3')
for i in l:
    if i.endswith('.shp'):
        s1 = s.split('.')[0] + '.txt'
        file = open(s1, 'w')

    driver = ogr.GetDriverByName('ESRI Shapefile')
    datasource = driver.Open(i, 0)
    if datasource is None:
        print 'Could not open file'
        sys.exit(1)

    layer = datasource.GetLayer()

    feature = layer.GetNextFeature()
    while feature:

        id = feature.GetFieldAsString('ID')
        Distanta = feature.GetFieldAsString('DIST')
        Z = feature.GetFieldAsString('Z')
        geom = feature.GetGeometryRef()
        x = str(geom.GetX())
        y = str(geom.GetY())

        file.write(id + " " + Distanta + " " + "[X]:" + " " + x + ' ' + '[Y]:' + " "  + y + " " + " " + "[Z]" + Z + " " +  "\n")

        feature.Destroy()
        feature = layer.GetNextFeature()

    datasource.Destroy()
    file.close()

您可以使用os.listdir()列出当前目录中的文件和文件夹。 这将返回当前目录(或作为参数指定给它的目录,如果未指定参数,则检查当前目录)中的所有文件的列表。

然后您可以检查名称以结尾的文件.shp using string.endswith()函数,然后使用它来创建新文件。

小部分的示例 -

import os , os.path
l = os.listdir()
for i in l:
    if i.endswith('.shp'):
        s1 = s.split('.')[0] + '.txt'

最后 s1 将包含扩展名为.txt .

然后你可以在这个文件上执行你的逻辑,并继续这样做。

完整的代码看起来像 -

导入 ogr, os, sys, osr,os.path

os.chdir('..\配置文件') l = os.listdir() 对于 l 中的 i: 如果 i.endswith('.shp'): s1 = s.split('.')[0] + '.txt' 文件 = 打开(s1, 'w')

    driver = ogr.GetDriverByName('ESRI Shapefile')

    datasource = driver.Open(i, 0)
    if datasource is None:
        print 'Could not open file'
        sys.exit(1)

    layer = datasource.GetLayer()

    feature = layer.GetNextFeature()
    while feature:

        id = feature.GetFieldAsString('ID')
        Distanta = feature.GetFieldAsString('DIST')
        Z = feature.GetFieldAsString('Z')
        geom = feature.GetGeometryRef()
        x = str(geom.GetX())
        y = str(geom.GetY())

        file.write(id + " " + Distanta + " " + "[X]:" + " " + x + ' ' + '[Y]:' + " "  + y + " " + " " + "[Z]" + Z + " " +  "\n")

        feature.Destroy()
        feature = layer.GetNextFeature()

    datasource.Destroy()
    file.close()

打开文件等的更好方法是使用with陈述。查一下它的教程here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

脚本循环遍历目录中的文件 的相关文章

  • Spark 请求最大计数

    我是 Spark 的初学者 我尝试请求允许我检索最常访问的网页 我的要求如下 mostPopularWebPageDF logDF groupBy webPage agg functions count webPage alias cntW
  • 从数据框中按索引删除行

    我有一个数组wrong indexes train其中包含我想从数据框中删除的索引列表 0 63 151 469 1008 要删除这些索引 我正在尝试这样做 df train drop wrong indexes train 但是 代码失败
  • Python中Decimal类型的澄清

    每个人都知道 或者至少 每个程序员都应该知道 http docs oracle com cd E19957 01 806 3568 ncg goldberg html 即使用float类型可能会导致精度错误 然而 在某些情况下 精确的解决方
  • Python模块可以访问英语词典,包括单词的定义[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 python 模块 它可以帮助我从英语词典中获取单词的定义 当然有enchant 这可以帮助我检查该单词是否存在于英语中
  • 如何迭代按值排序的 Python 字典?

    我有一本字典 比如 a 6 b 1 c 2 我想迭代一下by value 不是通过键 换句话说 b 1 c 2 a 6 最直接的方法是什么 sorted dictionary items key lambda x x 1 对于那些讨厌 la
  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • 如何使用 Plotly 中的直方图将所有离群值分入一个分箱?

    所以问题是 我可以在 Plotly 中绘制直方图 其中所有大于某个阈值的值都将被分组到一个箱中吗 所需的输出 但使用标准情节Histogram类我只能得到这个输出 import pandas as pd from plotly import
  • 通过列表理解压平列表列表

    我正在尝试使用 python 中的列表理解来展平列表 我的清单有点像 1 2 3 4 5 6 7 8 只是为了打印这个列表列表中的单个项目 我编写了这个函数 def flat listoflist for item in listoflis
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • Django 模型在模板中不可迭代

    我试图迭代模型以获取列表中的第一个图像 但它给了我错误 即模型不可迭代 以下是我的模型和模板的代码 我只需要获取与单个产品相关的列表中的第一个图像 模型 py class Product models Model title models
  • 如何在 pytest 中将单元测试和集成测试分开

    根据维基百科 https en wikipedia org wiki Unit testing Description和各种articles https techbeacon com devops 6 best practices inte
  • 如何计算numpy数组中元素的频率?

    我有一个 3 D numpy 数组 其中包含重复的元素 counterTraj shape 13530 1 1 例如 counterTraj 包含这样的元素 我只显示了几个元素 array 136 129 130 103 102 101 我
  • TensorFlow的./configure在哪里以及如何启用GPU支持?

    在我的 Ubuntu 上安装 TensorFlow 时 我想将 GPU 与 CUDA 结合使用 但我却停在了这一步官方教程 http www tensorflow org get started os setup md 这到底是哪里 con
  • 按元组分隔符拆分列表

    我有清单 print L I WW am XX newbie YY ZZ You WW are XX cool YY ZZ 我想用分隔符将列表拆分为子列表 ZZ print new L I WW am XX newbie YY ZZ You
  • Seaborn Pairplot 图例不显示颜色

    我一直在学习如何在Python中使用seaborn和pairplot 这里的一切似乎都工作正常 但由于某种原因 图例不会显示相关的颜色 我无法找到解决方案 因此如果有人有任何建议 请告诉我 x sns pairplot stats2 hue
  • 您可以将操作直接应用于map/reduce/filter 中的参数吗?

    map and filter通常可以与列表理解互换 但是reduce并不那么容易被交换map and filter 此外 在某些情况下我仍然更喜欢函数语法 但是 当您需要对参数本身进行操作时 我发现自己正在经历语法体操 最终必须编写整个函数
  • 字典和数组作为类变量与实例变量

    这是赚取积分的简单方法 请解释以下内容 class C a b 0 c def init self self x def d self k v self x k v self a k v self b v self c append v d
  • 如何读取Python字节码?

    我很难理解 Python 的字节码及其dis module import dis def func x 1 dis dis func 上述代码在解释器中输入时会产生以下输出 0 LOAD CONST 1 1 3 STORE FAST 0 x
  • Python 无法使用套接字绑定我的外部/公共 IP 地址,给出错误但是当使用本地 IP 地址时,错误不会显示

    这是出现主要错误的代码 与我的本地 IP 的绑定将起作用 s bind 192 168 1 4 port 与我的公共 IP 的绑定失败并出现以下错误 s bind 99 99 99 99 port WinError 10049 请求的地址在
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default

随机推荐

  • 如何在ListView中创建可点击的链接?

    我正在尝试使 URL 在 ListView 项目内可单击 我该怎么做呢 我希望它的工作方式是用户以纯文本形式存储链接 然后当我检索链接时 我想让它们在 ListView 中可单击 这是我在 read GetString 2 提取 URL 值
  • Node.js MySQL 插入问题[重复]

    这个问题在这里已经有答案了 考虑 exports adduser function connection return function req res Get form values var username req body usern
  • 如何将字符串的一部分转换为斜体?

    我要实现animal getScientificName如斜体 代码如下 我正在使用列表视图并在列表视图中设置文本 我不仅希望文本视图的一部分显示为斜体 无论如何我可以做到这一点 我附上了下面的部分代码 感谢您的帮助 String list
  • SwipeRefreshLayout 内的 Horizo​​ntalScrollView

    我实施了新的SwipeRefreshLayout我的应用程序中的组件 它适用于任何垂直视图 例如ListView GridView and ScrollView 它在水平视图中表现非常糟糕 例如HorizontalScrollView 当向
  • 使用节点的本机 mongoDB 驱动程序流式传输查询结果

    我在 mongoDB 集合中有 100 000 条记录 并尝试使用本机驱动程序在 node js 应用程序中检索它们 我按照中的例子CursorStream 的 MongoDB 文档但出现错误 RangeError Maximum call
  • mime_content_type 仅针对 css 和 js 文件返回 text/plain

    我遇到了 PHP 的 mime content type 这个奇怪的问题 它工作正常 除了 CSS 和 JavaScript 文件 它返回 text plain PHP 的默认 mime 设置为 text html 修改 mime type
  • 如果没有对象安全,Rust 会失去哪些安全保证?

    我试图理解对象安全的想法 我从文档中知道对象安全是以下内容 该特质并不要求这样Self Sized 它的所有方法都是对象安全的 如果对象安全所需的两个条件之一被放弃 哪些事情可能会导致安全 Rust 所提供的安全保证失败 From 自我满足
  • any() 函数检查两个 TRUE 而不是一个

    The any 来自基 R 的函数检查是否 给定一组逻辑向量 至少其中一个值是否为真 有没有办法使用any 函数 但让它检查是否至少有两个值是 true 而不是只有一个 如果没有 是否有另一个功能可以用来执行类似的操作 我们可以用 sum
  • 我可以告诉 javac 忽略缺少 `import foo.Bar` 吗?

    我正在使用反射来加载MyClass class 外部文件 在运行时 MyClass class使用图书馆Bar 这意味着我需要放置import foo Bar 在文件的顶部 但是 那Bar库已经在主类加载中加载MyClass 有没有办法让我
  • 未连接到调试器时,快速应用程序恢复在 WP8.1 上崩溃

    我正在使用 MVVM Light 开发 WP8 1 应用程序 默认情况下会激活快速应用程序恢复 这很棒 因为我想将其包含在应用程序中 当应用程序从 Visual Studio 启动时 它会按预期工作 然而 当应用程序直接在设备上启动时 就会
  • str 对象不可调用 python

    我尝试四处寻找答案 但是这里的问题要么似乎很高级 我是Python新手 要么是因为重新定义了我在脚本中无法理解的含义 这是代码 a float input Enter the length in inches b float input E
  • 是否可以让 css 选择器影响页面中的其他元素而不使用 javascript? [复制]

    这个问题在这里已经有答案了 例如 我想让两个文本框在其中一个获得焦点时具有相同的样式 div class divTxt div
  • Python 逆字母顺序

    我有这个输出 3 one 2 was 2 two 1 too 1 racehorse 1 a 我需要将具有相同编号的元组按相反的字母顺序放置在列表中 这是我的代码 def top5 words text split text text sp
  • html body ondblclick 获取被点击的元素

    所以在我的 html 中我有这部分 div dasd div div dasda div 在 javascript 中 该函数是 function myfunc do stuff here 我想知道在 myfunc 内部 html 主体的哪
  • 在 Get-ChildItem 中指定 *.xls 过滤器也会返回 *.xlsx 结果

    我有一个包含 xls xlsx 和 xlsm 文件的文件夹 并且想仅过滤 xls 文件 为什么以下行不能按我的预期工作 我看到 xls xlsx 和 xlsm 结果 Get ChildItem Get Location Filter xls
  • 验证错误消息有效时不会隐藏

    更新2 我发现输入的标题由于某种原因被显示为错误消息 我使用忽略标题 true以确保标题不会显示为错误消息 However 现在我的新问题是 一旦我输入有效的电子邮件地址 错误消息仍然不会消失 如何修复验证错误消息 使其在输入字段有效时隐藏
  • Ionic2 的字体很棒

    如何使用 Font Awesome 图标
  • 有没有办法判断传入的变量是引用类型还是值类型?

    在Swift中 有没有办法通过代码判断传入的变量是引用类型还是值类型 例如 元组是值类型还是引用类型 一切是一个值类型 除了 一个类的实例 一个功能 一个数组 其工作方式很奇怪 它通过引用传递 但如果它是可变的并且项目数量发生更改 则可以与
  • 如何找到加载缓慢的 SAPUI5 应用程序的加载瓶颈

    我正在构建一个自定义 SAPUI5 应用程序 其中包含七个图表 sap viz ui5 controls VizFrame 在页面的标题内容中 嵌套在sap suite ui commons ChartContainer 和网格表 sap
  • 脚本循环遍历目录中的文件

    我有以下代码 它使用我需要的数据从 shp file 创建我需要的 txt 文件 我有一个名为 profile 的文件夹 其中包含一些名为 profil1 shp profil2 shp profil3 shp 等 的形状文件 我想知道如何