如何使用Python在Windows中打开文件



我正在通过 sys.argv 传递文件名,带有斜杠而不是反斜杠。我正在使用os.path.normpath和os.path.join,但是当尝试打开文件时,我得到一个异常,没有这样的文件或目录:并且路径带有双反斜杠。我正在寻找解决方案几个小时,但没有任何效果。

我尝试了我在谷歌上可以找到的所有教程,但我总是遇到同样的问题。我只是不断得到双反斜杠。我也尝试过像示例中那样对路径进行硬编码。

filepath = os.path.normpath(os.path.join('D:/dir1/dir2/dir3', 'myfile.txt'))
try:
    my_file = open(filepath, 'w+')
except Exception as e:
    print('Cannot create/open file w+!n{}'.format(e))

我需要能够打开文件。

在python脚本中,它适用于:

file_path =  os.path.join(os.path.abspath(os.path.dirname(__file__)), 'config.ini')

但是如果我需要使用py2exe构建一个程序,则该__file__不起作用,我使用:

file_path =  os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), 'config.ini')

希望这对某人有所帮助。

我更愿意将我的文件保存在结构化格式中,其中我的主脚本将位于根文件夹中。从某种意义上说,这种方法变得更加通用,因为如果您尝试在具有不同操作系统的其他系统上运行相同的内容,则路径将引发问题。

Project
  |-- main.py
  |-- files
       |--file1.txt
       |--file2.txt

然后,您可以通过以下方式简单地访问文件

with open("files/file1.txt", 'w+') as file_object:
    content = file_object.readlines() # Whatever the method

窗口的文件路径之前添加 r。

guests = open(r"C:folderguests.txt","w")
initial_guests = ["Bob", "Andrea", "Manuel", "Polly", "Khalid"]
for i in initial_guests:
    guests.write(i + "n")
    
guests.close()

相关内容

  • 没有找到相关文章

最新更新