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

js81xvg6  于 2023-06-28  发布在  Python
关注(0)|答案(3)|浏览(154)

我用斜线而不是反斜线将文件名传递给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))

我需要能够打开文件。

hzbexzde

hzbexzde1#

在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')

希望这对某人有帮助。

ycggw6v2

ycggw6v22#

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

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

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

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

vfh0ocws3#

在windows的文件路径前添加r。
guests = open(r“C:\directory\guests.txt”,“w”)initial_guests = [“Bob”,“Andrea”,“Manuel”,“Polly”,“Khalid”]
对于initial_guests中的i:guests.write(i +“\n”)
close()

相关问题