Я больше не получаю выходной файл на моем коде Python в Pycharm - PullRequest
0 голосов
/ 04 ноября 2019

Больше не получается выходной файл на pycharm.

Ранее я получал выходной файл, но он не обновлялся с изменениями в data_to_write. Я переместил выходной файл в другое место, но не изменил путь к выходному каталогу для выходного файла, который мне нужно сгенерировать. Pycharm больше не создает выходной файл.

def main():
driver = gdal.GetDriverByName('JPEG')
driver.Register()

sdsu_in = './data/SDSU_3Color.jpg'
# open and read only jpeg file
data = gdal.Open(sdsu_in, gdalconst.GA_ReadOnly)

if data is None:
    print("Error: Could not read '{}'".format(sdsu_in))
    sys.exit()

rows = data.RasterYSize
cols = data.RasterXSize
r_bands = data.RasterCount
proj = data.GetProjectionRef()
m_data = data.GetMetadata()
geotrans = data.GetGeoTransform()
x_origin = geotrans[0]
y_origin = geotrans[3]
pixel_width = geotrans[1]
pixel_height = geotrans[5]

print("The # of rows: {}, The # of columns: {}, raster bands: {}, "
      "metadata: {}".format(rows, cols, r_bands, proj, m_data))

data_to_write = f'The number of rows: {rows}\n The number of columns 
{cols}\n The number of raster bands: {r_bands}\n The projection: {proj}\n 
The metadata: {m_data}\n The Geotransform information: {geotrans}\n X 
Origin: {x_origin}\n Y Origin: {y_origin}\n Pixel Width: {pixel_width}\n 
Pixel Height: {pixel_height}'

# creating new output with specified information
sdsu_out = './output/output_w1.txt'
with open(sdsu_out, 'w') as f:
    f.write(data_to_write)
    f.flush()
    f.close()

if __name__ == '__main__':
    main()

Код намного длиннее, чем этот, но это простой файл .txt, который мне нужно создать. Вчера вечером я получил вывод, но он не будет обновляться с измененным кодом, поэтому я добавил «1», чтобы завершить создание (надеюсь) нового файла в выходном каталоге. Я не изменил относительный путь к выходному каталогу. Остальной код очень длинный, поэтому я его не загружал. Никаких красных ошибок при отладке, только 6 слабых предупреждений.

Спасибо за вашу помощь. ** код отлично написан на pycharm, но не собирается добавлять 4 пробела в каждую строку.

1 Ответ

0 голосов
/ 04 ноября 2019

Я предполагаю, что что-то изменило текущую рабочую директорию вашей среды Pycharm.

Просто добавьте следующую строку непосредственно перед оператором with open(. Он распечатает текущий рабочий каталог. Затем я предлагаю вам использовать файловый менеджер и посмотреть этот каталог, чтобы увидеть, действительно ли файл не был создан

print("I will create the file ", sdsu_out, "in the directory ", os.path.realpath(os.path.getcwd())

и добавить строку

import os

в началефайл, если os еще не был импортирован.

...