首页 > 编程问答 >为什么 tree.write 不创建我的 XML 文件?

为什么 tree.write 不创建我的 XML 文件?

时间:2024-07-21 06:32:16浏览次数:10  
标签:python linux ubuntu elementtree writefile

在 Kubuntu Linux 上使用 PyCharm 我通过添加条目来修改 XML 文件并将更改写入新文件,但该文件没有创建,也没有显示错误:

import xml.etree.ElementTree as ET

if __name__ == ('__main__:'):

    tree = ET.parse('/home/qual/PycharmProjects/Automation_learn/ip_phone_cfg.xml')
    root = tree.getroot()

    child = ET.Element('ELEMENT_NAME')
    child.text = '192.168.10.12'
    root.append(child)

    tree.write('/home/qual/PycharmProjects/Automation_learn/ip_phone_cfg2.xml')

有什么问题?对于创建文件的文件夹,我是否需要额外的权限?


该代码看起来不错,并且应该可以在没有额外权限的情况下在你指定的路径中创建文件,假设 Python 脚本具有写入该目录的权限。 以下是一些可以帮助你解决此问题的故障排除步骤:

1. 检查文件是否存在:

  • 显式路径: 不要依赖你的工作目录。在你的代码中,尝试将完整路径添加到你的 tree.write 语句中,例如: python tree.write('/home/qual/PycharmProjects/Automation_learn/ip_phone_cfg2.xml')
  • 文件浏览器: 在你的文件浏览器中手动导航到 /home/qual/PycharmProjects/Automation_learn ip_phone_cfg2.xml 是否存在?

2. 权限错误:

  • 终端检查: 打开终端并导航到 /home/qual/PycharmProjects/Automation_learn 目录。运行 ls -l 来查看文件权限。你对该目录是否有写权限?
  • 权限授予: 如果缺少写权限,你可以使用以下命令授予它们( 小心使用! ): bash sudo chmod -R u+w /home/qual/PycharmProjects/Automation_learn

3. PyCharm 问题:

  • 运行配置: 有时 PyCharm 的运行/调试配置可能会导致工作目录出现问题。验证配置中是否正确设置了工作目录。
  • 重新启动 PyCharm: 这听起来很简单,但重新启动 IDE 有时可以解决奇怪的问题。

4. 代码中的异常:

  • try...except 块: 将你的 tree.write 语句包装在一个 try...except 块中,以捕获任何潜在错误:

```python import xml.etree.ElementTree as ET

if name == ' main ': try: tree = ET.parse('/home/qual/PycharmProjects/Automation_learn/ip_phone_cfg.xml') root = tree.getroot()

       child = ET.Element('ELEMENT_NAME')
       child.text = '192.168.10.12'
       root.append(child)

       tree.write('/home/qual/PycharmProjects/Automation_learn/ip_phone_cfg2.xml')
   except Exception as e:
       print(f"发生错误:{e}")

``` 此代码将打印发生的任何错误,为你提供更多有关问题的信息。

如果在尝试了这些步骤后仍然遇到问题,请提供以下信息,以便我能够进一步帮助你:

  • 在你尝试写入文件后打印 tree.write 的返回值。
  • 在终端中运行代码时的任何错误消息。
  • 你正在使用的 PyCharm 版本。

标签:python,linux,ubuntu,elementtree,writefile
From: 78773906

相关文章

  • Python Pandas - 读取 CSV 或 Excel
    我允许用户上传CSV或Excel文件。我正在使用pandas读取文件并创建数据框。由于我无法预测用户将上传哪种文件类型,因此我将pd.read_csv()和pd.read_excel()包装在try/except块中。ifform.validate_on_submit():input_filename=secure_filename(form.file.da......
  • 如何在 python 脚本中调用 robocopy 来批量复制多个文件夹?
    我正在尝试在网络驱动器之间移动多个大文件夹(>10Gb、>100个子文件夹、>2000个文件)。我尝试过在python中使用Shutil.copytree命令,它工作得很好,只是由于不同的原因它无法复制一小部分(<1%的文件)。我相信robocopy对我来说是最好的选择,因为我可以创建一个记录传输过......
  • 如何在Python中使用装饰器动态创建类方法?
    我正在开发一个Python项目,我需要在运行时动态地为类创建方法。我想使用装饰器根据一些外部配置将这些方法添加到类中。要求是:装饰器应该从外部配置(例如字典)读取方法定义。装饰器应该动态地将这些方法添加到类中。每个生成的方法都应具有配置中指定的自己唯一的实现。以......
  • python 中的可扩展视频文件完整性验证
    我的目录包含约100万个视频文件,嵌套在100个子目录下。我想编写一个python脚本来验证这些文件没有损坏,然后删除损坏的文件。做到这一点最有效的方法是什么?它运行的机器有64个cpu核心。当然,以下是如何在Python中构建可扩展视频文件完整性验证器的步骤,该验证器可以......
  • Python:对很高维的矩阵进行对角化?
    目前我正在研究一个涉及对角化矩阵以获得特征值和特征向量的问题。但现在我想将问题扩展到200,000x200,000的尺寸。我查找了如何将矩阵存储在numpy中,有人建议使用PyTables。看起来很有希望。但我想知道哪里有工具可以帮助对PyTables中的矩阵存储进行对角化。......
  • 除了curses之外,是否有一个python包可以轻松控制终端的输出?
    我现在正在处理一些小项目,我对GUI的偏好是终端中漂亮的文本界面。我宁愿不强迫用户处理Windowscurses二进制文件,所以我正在寻找不同的选项。我已经发现了asciimatics,但我想考虑所有可能的选择。如果有人有任何经验或知道解决此用例的包,我将不胜感激。谢谢你说的没错......
  • 当值来自函数 python unittest 时,如何模拟全局变量
    我必须在python中模拟全局变量,但变量值来自另一个函数。当我导入文件时,这个函数正在运行,但我想要那里的模拟值。secrets.pyimporttracebackimportloggingimportboto3importosimportjsonlogger=logging.getLogger()logger.setLevel(logging.INFO)secret_......
  • 使用 python print 和 gdb 时出现 BrokenPipeError
    我正在尝试在Linux中运行应用程序并使用Python生成输入:python3-c'print(".....")'|./someapp但出现下一个错误:Exceptionignoredin:<_io.TextIOWrappername='<stdout>'mode='w'encoding='utf-8'>BrokenPipeError:......
  • python 舰队容器
    我正在尝试使用容器在flet中制作一个菜单,它应该是半透明的,但其中的项目不是。我尝试将opacity=1分配给元素,但没有成功-它们与容器一样透明感谢任何帮助我的代码:nickname=ft.TextField(label="xxx",hint_text="xxx")column=ft.Column(controls=[nickname......
  • Python应用程序跨子包共享的配置文件
    我正在构建一个应用程序来控制一些硬件。我在包中实现了不同类型的硬件:电机和测量设备。我的文件结构如下:name_of_my_app/__init__.pymain.pyconfig.iniCONFIG.pymotors/__init__.pyone_kind_of_motor.pymeasurement_devices/......