我有一个大约400,000行的文本文件.我需要将此文本文件导入到一个程序中,该程序只接受用空格或制表符分隔的文本文件,但此文本文件用分号分隔.程序中没有选项我从(Arcmap)导出文本文件以更改删除,并且在文本文件中执行查找和替换本身将需要2天.
我已经搜索了一个脚本来执行此操作,但它们似乎都用空格替换word文件的整个LINE,而不是单独替换每个分号,留下我的空文本文件.
这是我的文本文件的示例:
"OID_";"POINTID";"GRID_CODE";"POINT_X";"POINT_Y"
;1;-56.000000;200900.250122;514999.750122
;2;-56.000000;200900.750122;514999.750122
;3;-56.000000;200901.250122;514999.750122
;4;-57.000000;200901.750122;514999.750122
;5;-57.000000;200902.250122;514999.750122
;6;-57.000000;200902.750122;514999.750122
;7;-57.000000;200903.250122;514999.750122
;8;-57.000000;200903.750122;514999.750122
;9;-57.000000;200904.250122;514999.750122
;10;-57.000000;200904.750122;514999.750122
Run Code Online (Sandbox Code Playgroud)
我需要它看起来像这样:
1 -56.000000 200900.250122 514999.750122
2 -56.000000 200900.750122 514999.750122
Run Code Online (Sandbox Code Playgroud) 我遇到了这个代码的问题.我正在尝试重命名文件夹中的所有文件名,以便它们不再存在+'s!这之前已经工作了很多次但突然间我得到了错误:
WindowsError: [Error 2] The system cannot find the file specified at line 26
第26行是代码中的最后一行.
有谁知道为什么会这样?我只是承诺有人能在5分钟内做到这一点,因为我有一个代码!惭愧它不起作用!!
import os, glob, sys
folder = "C:\\Documents and Settings\\DuffA\\Bureaublad\\Johan\\10G304655_1"
for root, dirs, filenames in os.walk(folder):
for filename in filenames:
filename = os.path.join(root, filename)
old = "+"
new = "_"
for root, dirs, filenames in os.walk(folder):
for filename in filenames:
if old in filename:
print (filename)
os.rename(filename, filename.replace(old,new))
Run Code Online (Sandbox Code Playgroud) 我有一些代码在文件名加载的末尾添加了"_manual"这个词.我需要更改脚本,以便删除文件名(ES)的最后两个字母,然后用_ES_Manual替换它,例如: AC-5400ES.txt - > AC-5400_ES_manual.txt
我如何将该功能合并到此代码中?
folder = r"C:/Documents and Settings/DuffA/Bureaublad/test"
import os # glob is unnecessary
for root, dirs, filenames in os.walk(folder):
for filename in filenames:
fullpath = os.path.join(root, filename)
filename_split = os.path.splitext(fullpath) # filename and extensionname (extension in [1])
filename_zero, fileext = filename_split
print fullpath, filename_zero + "_manual" + fileext
os.rename(fullpath, filename_zero + "_manual" + fileext)
Run Code Online (Sandbox Code Playgroud) 我有大量的.xml文件(大约70个),我需要从中提取一些坐标.显然,执行此操作的最佳方法是使用元素树解析xml文件.我是python的新手(非常非常新!)并且很难理解元素树附带的所有文档!我想知道是否有人有任何代码,他们使用元素树或任何人都可以向我解释如何去做它..谢谢!
这是我的XML文件中的示例..
<?xml version="1.0" encoding="UTF-8" ?>
- <lev:Leveringsinformatie xmlns:lev="http://www.kadaster.nl/schemas/klic/20080722/leveringsinfo">
<lev:Version>1.5</lev:Version>
<lev:Klicnummer>10G179900</lev:Klicnummer>
<lev:Ordernummer>0065491624</lev:Ordernummer>
<lev:RelatienummerGrondroerder>0000305605</lev:RelatienummerGrondroerder>
<lev:Leveringsvolgnummer>1</lev:Leveringsvolgnummer>
<lev:Meldingsoort>Graafmelding</lev:Meldingsoort>
<lev:DatumTijdAanvraag>2010-08-10T11:43:02.779+02:00</lev:DatumTijdAanvraag>
<lev:KlantReferentie>1207-0132-030 - 6</lev:KlantReferentie>
- <lev:Locatie axisLabels="x y" srsDimension="2" srsName="epsg:28992" uomLabels="m m">
- <gml:exterior xmlns:gml="http://www.opengis.net/gml">
- <gml:LinearRing>
<gml:posList>137800.0 484217.0 137796.0 484222.0 137832.0 483757.0 138178.0 483752.0 138174.0 484222.0 137800.0 484217.0</gml:posList>
</gml:LinearRing>
</gml:exterior>
</lev:Locatie>
- <lev:Pngformaat>
- <lev:OmsluitendeRechthoek xmlns:ns4="http://www.kadaster.nl/schemas/klic/20080722/madt" xmlns:bis="http://www.kadaster.nl/schemas/klic/20080722/klicnetbeheerdersinformatieservicetypes" xmlns:ns0="http://www.kadaster.nl/schemas/klic/20080722/gias" xmlns:ns7="http://www.kadaster.nl/schemas/klic/20080722/klicnetbeheerdersinformatieservicetypes" xmlns:madt="http://www.kadaster.nl/schemas/klic/20080722/madt" xmlns:gia="http://www.kadaster.nl/schemas/klic/20080722/gias" xmlns:klic="http://www.kadaster.nl/schemas/20080722/klic" xmlns:b="http://www.kadaster.nl/schemas/klic/20080722/bundelingtypes" xmlns:ns9="http://www.kadaster.nl/schemas/klic/20081010/bmkltypes" xmlns:gml="http://www.opengis.net/gml" xmlns:ns1="http://www.kadaster.nl/schemas/20080722/klic" xmlns:a="http://www.kadaster.nl/schemas/klic/20080722/bundelingservicetypes" xmlns:bmkl="http://www.kadaster.nl/schemas/klic/20081010/bmkltypes" xmlns:ns3="http://www.opengis.net/gml" xmlns:ns8="http://www.kadaster.nl/schemas/klic/20080722/knts">
- <gml:Envelope srsDimension="2" srsName="epsg:28992">
<gml:lowerCorner>137796 483752</gml:lowerCorner>
<gml:upperCorner>138178 484222</gml:upperCorner>
</gml:Envelope>
</lev:OmsluitendeRechthoek>
<lev:PixelsBreed>5348</lev:PixelsBreed>
<lev:PixelsHoog>6580</lev:PixelsHoog>
</lev:Pngformaat>
- …Run Code Online (Sandbox Code Playgroud) 我已经构建了这段代码来专门识别一堆.XML文件并从这些文件中提取坐标.这是我的代码:
from xml.etree import ElementTree as ET
import sys, string, os, arcgisscripting
gp = arcgisscripting.create(9.3)
workspace = "D:/J040083"
gp.workspace = workspace
for root, dirs, filenames in os.walk(workspace): # returms root, dirs, and files
for filename in filenames:
filename_split = os.path.splitext(filename) # filename and extensionname (extension in [1])
filename_zero = filename_split[0]
extension = str.upper(filename_split[1])
try:
first_2_letters = str.upper(filename_zero[0] + filename_zero[1])
except:
first_2_letters = "XX"
if first_2_letters == "LI" and extension == ".XML":
tree = ET.parse(workspace)
print tree.find('//{http://www.opengis.net/gml}lowerCorner').text
print tree.find('//{http://www.opengis.net/gml}upperCorner').text
Run Code Online (Sandbox Code Playgroud)
我遇到了错误:
Message …Run Code Online (Sandbox Code Playgroud) 我有很多很多.xml文件,我需要从中提取一些坐标.直接从.xml文件中提取数据似乎非常非常复杂 - 所以我正在将.xml文件保存为.txt文件并以这种方式提取数据.但是,当我打开.txt文件时,我的数据全部聚集在大约6行上.到目前为止我找到的所有脚本通过读取每行的第一个单词来选择数据..但显然不会为我工作!我需要在这些评论之间提取数字:
<gml:lowerCorner>137796 483752</gml:lowerCorner> <gml:upperCorner>138178 484222</gml:upperCorner>
Run Code Online (Sandbox Code Playgroud)
在文本文件中,它们都组合在一起!有谁知道如何提取这些数据?谢谢!
我需要简单地将"_Manual"添加到我在特定目录中的所有文件的末尾这是我目前正在使用的脚本 - 我没有使用python的经验所以这个脚本是其他脚本的frankenstine我躺在身边!
它不会给出任何错误消息,但它也不起作用..
folder = "C:\Documents and Settings\DuffA\Bureaublad\test"
import os, glob
for root, dirs, filenames in os.walk(folder):
for filename in filenames:
filename_split = os.path.splitext(filename) # filename and extensionname (extension in [1])
filename_zero = filename_split[0]
os.rename(filename_zero, filename_zero + "_manual")
Run Code Online (Sandbox Code Playgroud)
我现在正在使用
folder = "C:\Documents and Settings\DuffA\Bureaublad\test"
import os # glob is unnecessary
for root, dirs, filenames in os.walk(folder):
for filename in filenames:
fullpath = os.path.join(root, filename)
filename_split = os.path.splitext(fullpath) # filename and extensionname (extension in [1])
filename_zero, fileext = filename_split
print …Run Code Online (Sandbox Code Playgroud)