我不再在pycharm中获取python代码的输出文件

我不再在pycharm中获取python代码的输出文件,python,output,driver,python-3.7,gdal,Python,Output,Driver,Python 3.7,Gdal,不再在pycharm上获取输出文件 我以前得到了一个输出文件,但它不会随着“数据写入”的更改而更新。我将输出文件移动到另一个位置,但没有更改需要生成的输出文件的输出目录路径。Pycharm不再创建输出文件 def main(): driver = gdal.GetDriverByName('JPEG') driver.Register() sdsu_in = './data/SDSU_3Color.jpg' # open and read only jpeg file data = gdal.

不再在pycharm上获取输出文件

我以前得到了一个输出文件,但它不会随着“数据写入”的更改而更新。我将输出文件移动到另一个位置,但没有更改需要生成的输出文件的输出目录路径。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个空格。

我认为,pycharm环境的当前工作目录发生了变化

只需在带有open(语句)的
前面直接添加以下行。它将打印出当前工作目录。
然后,我建议您使用一个文件资源管理器,查看该目录,看看该文件是否真的还没有创建

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

import os

如果到目前为止还没有导入
os
,则在文件的开头。

我注意到的第一件事是使用了
.flush()
.close()
。当将
一起使用时,这些是不需要的。我不认为这是导致问题的原因,但它只能对修复它有益。我已经从代码中删除了刷新和关闭,但仍然没有输出。也许我会尝试更新conda和我的虚拟python环境?尝试不会有什么伤害,尽管如果这解决了所有问题。顺便说一句,您写道代码在PyCharm上完全缩进了,但在这里没有。这可能是因为您正在使用“4空格”方法创建代码块。请看一下关于“代码围栏”的部分。我使用“```”(3个倒勾)我发现这比其他选择容易得多。是的,更新并不能解决任何问题。Pycharm允许“标签”按钮创建4个空格,甚至显示对齐线,以确保代码的所有部分都统一缩进。非常感谢您的建议。我仍然感到非常沮丧和困惑。是否有其他方法让您共享代码,以便我可以尝试格式化?感谢您的输入。我尝试在使用之前粘贴代码h open()语句。不打印任何内容..Pycharm的回答“进程已完成,退出代码为0”我也检查了文件目录,输出文件夹是空的,其他几个文件也应该输出到输出目录中,但幸运的是没有。我想我应该从一个简单的txt文件开始,看看我是否可以解决这个问题。谢谢。你的缩进不是100%正确。请修复并发布一个完整的例子,这就是您也在您的计算机上进行了尝试。您可以在开始时添加打印语句(在导入操作系统之后)或者在文件的末尾没有任何缩进。这可能会给你一个想法。也许你的主函数因为一些问题根本没有执行。或者你用一个给定的名称编辑了一个python文件,但你在另一个目录或另一台机器上执行了另一个文件。(这两种情况都已经发生在我身上,我需要相当长的时间才能弄清楚)堆栈溢出改变了我的缩进,因为我的f'字符串是“data_to_write”我的代码太长,无法在评论中发表。一般来说,如果你能将复杂的庞大代码简化为一个非常小的函数代码段,并且仍然能够再现问题,那么你会得到最高质量的答案。事实上,有时候,仅仅写一个例子,问题就会变得非常明显,你甚至不必再问这个问题。(这种情况也经常发生在我身上)我仍然建议在文件的开头和结尾添加打印。然后您应该看到文件应该出现的当前工作目录。在大多数情况下,这只是假设代码在另一个目录中执行。如果您没有看到任何控制台输出或控制台输出立即消失,则在文件的开头和结尾添加以下行:
import os,time;print(os.path.realpath(os.getcwd());time.sleep(5)
,然后查找输出。