Мне нужно преобразовать cellsize
, xllcorner
и yllcorner
нескольких файлов ASCII из m
в km
. Я пытался перезаписать их в заголовке файлов ASCII, как если бы я использовал обычный текстовый файл, например:
for rw_file in os.listdir(r"C:\Users\Marie\Test"):
rw_file_path = os.path.join(r"C:\Users\Marie\Test", rw_file)
with open(rw_file_path, 'r+') as f:
# skip the first two lines of the header
f.readline()
f.readline()
# convert the values of cellsize, xllcorner and yllcorner into km
line3 = f.readline()
header_x, xllcorner = line3.split()
xllcorner_new = int(xllcorner) / 1000
f.seek(2)
f.write(re.sub(header_x, xllcorner_new)) #third argument??
line4 = f.readline()
header_y, yllcorner = line4.split()
yllcorner_new = int(yllcorner) / 1000
f.seek(3)
f.write(re.sub(header_y, yllcorner_new))
line5 = f.readline()
header_size, cellsize = line5.split()
cellsize_new = int(cellsize) / 1000
f.seek(4)
f.write(re.sub(header_size, cellsize_new))
Но, конечно, функции re.sub нужны три аргумента. Я не уверен, как еще это сделать. Я все еще новичок, поэтому я уверен, что есть легкий путь, но я не могу его найти. Можно ли как-то переписать эти строки в шапке, или есть другой способ?