У меня есть следующий бит кода, который работает с обработкой, он принимает путь, установленный в «myfolder», и застегивает все типы файлов, связанные с shp (я не писал его, какая-то другая умная искра). Однако я хочу быть умным и перебирать текстовый файл, содержащий список множества путей. Я должен понять концепцию цикла через txt-файл и распечатать список путей к файлу, но я не уверен, как бы я связал их. Любая помощь будет большой.Проход по списку путей, пройденный в txt
Si
Simple Loop
items = 'shp_folders.txt'
with open (items) as f:
for line in f:
print(line)
f.seek(0)
for line in f:
print(line)
код для создания архивных файлов.
import zipfile, sys, os, glob, shutil
# Set the folder that contains the ShapeFiles
myFolder = "C:/data/shp/recycling/"
def zipShapefile(myFolder):
# Check if folder exists
if not (os.path.exists(myFolder)):
print myFolder + ' Does Not Exist!'
return False
# Get a list of shapefiles
ListOfShapeFiles = glob.glob(myFolder + '*.shp')
# Main shapefile loop
for sf in ListOfShapeFiles:
print 'Zipping ' + sf
# Create an output zip file name from shapefile
newZipFN = sf[:-3] + 'zip'
# Check if output zipfile exists, delete it
if (os.path.exists(newZipFN)):
print 'Deleting '+newZipFN
os.remove(newZipFN)
if (os.path.exists(newZipFN)):
print 'Unable to Delete' + newZipFN
return False
# Create zip file object
zipobj = zipfile.ZipFile(newZipFN,'w')
# Cycle through all associated files for shapefile adding them to zip file
for infile in glob.glob(sf.lower().replace(".shp",".*")):
print 'zipping ' + infile + ' into ' + newZipFN
if infile.lower() != newZipFN.lower() :
# Avoid zipping the zip file!
zipobj.write(infile,os.path.basename(infile),zipfile.ZIP_DEFLATED)
# Close zipfile
print 'ShapeFile zipped!'
zipobj.close()
# Got here so everything is OK
return True
# Call function to zip files
b = zipShapefile(myFolder)
if b:
print "Zipping done!"
else:
print "An error occurred during zipping."
Спасибо PM 2ring за ваш ответ, но я все еще немного смущен этим. Возможно, я не очень хорошо себя объяснил. Мой shp_folder.txt содержит списки имен путей, а zipshapes.py содержит функцию для zip содержимого папки, как определено как myFolder. То, что я хочу сделать, это заставить zipshapes.py прокручивать каждый из путей в txt-файле и застегивать содержимое этой папки. – geomiles
Хорошо. Я добавлю больше информации к моему ответу. Дайте мне минутку ... –
Приветствия за это, я вижу, как ваш цикл теперь. полный ответ ниже. – geomiles