跨平台Python文件处理

发布于 2025-01-10 22:27:36 字数 977 浏览 0 评论 0原文

我在各自的文件夹中有三个 python 文件和两个文本文件。

  • A文件夹中的A.py,即主文件
  • B文件夹中的b.py和b_results.txt
  • C文件夹中的c.py和c_results.txt

意图:

  1. 文件A.py将调用B.py中的类b_class() (通过 from B import b_class)
  2. b_class 将使用文本形式 b_results.txt 和 C.py 中的调用类 c_class (b.py 具有顶级导入 from C import * )
  3. c_class 需要一些数据形式c_results.txt 它执行其操作并将值返回给 b_class
  4. 然后 b_class 将对这两个结果进行 DoSomeThing 并将其吐给 A.py。显示结果的地方。

问题: 发生的情况是每个文件都在其各自的文件夹中完美执行。 C.py正在读取c_results.txt B.py 正在读取 b_results.txt 因为 c_class 被称为 b_class 中的实例。 c_class 正在寻找文件 c_results。 [OS,phatlib]中

尝试过的方法:

  • 的相对路径:没有这样的文件或目录:'c_results.txt'
  • 中不起作用
  • [OS,phatlib] 中的绝对路径:在其他机器(Windows/Mac/linux) init .py(包括 .py 和 .txt):无法跨平台工作

斗争的图形表示

我知道它正在调用一个类的实例,但我无法找到一种方法让它以专业的方式工作(我的意思是在 one.py 中编写所有内容并将相应的内容复制到cwd(),然后在退出之前remove()它们)。

有人可以告诉我它是如何完成的吗?

I have three python file and two text files file in respective folders.

  • A.py in folder A, which is the main file
  • B.py and b_results.txt in folder B
  • C.py and c_results.txt in folder C

Intentions:

  1. File A.py will call a Class b_class() in B.py (via from B import b_class)
  2. b_class will work with text form b_results.txt and a call Class c_class in C.py (b.py has top level import from C import * )
  3. c_class need some data form c_results.txt it dose its thing and returns value to b_class
  4. Then b_class will DoSomeThing with both results and spit it to A.py. Where the results are displayed.

Prob:
What's happening is each file is being executing perfectly in it's respective folder. C.py is reading c_results.txt
and B.py is reading b_results.txt
since c_class is called as an instance in b_class. c_class is looking for file c_results. txt in folder B.

Tried methods:

  • Relative paths in [OS, phatlib] : No such file or directory: 'c_results.txt'
  • Absolute paths in [OS, phatlib] : Not working in other machine (Windows/ Mac/ linux)
  • init.py (included .py and .txt) : Not working in cross platform

Pictorial representation of the struggle

I understand it's calling an instance of a class but I'm not able to find a method to make it work in a professional way (by this i mean writing everything in one.py and copy the respective contents to the cwd() then remove() them before exit).

Can someone tell me how it's done.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文