Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我的exe文件不遵循脚本中的指定路径?_Python_Directory_Exe - Fatal编程技术网

Python 为什么我的exe文件不遵循脚本中的指定路径?

Python 为什么我的exe文件不遵循脚本中的指定路径?,python,directory,exe,Python,Directory,Exe,因此,我制作了一个exe文件,它将运行到需要打开并写入csv文件的位置,故障是: FileNotFoundError:[Errno 2]没有这样的文件或目录:“p:\\myfile\\directory\\sheet.csv” [5520]无法执行脚本 目录确实存在,并且脚本在调试模式下或从python shell执行时,只有在exe格式下才会失败 我还注意到它在目录之间打印\\,这在我的脚本中不是这样的 我的一个理论是exe文件不能写入共享网络驱动器 我运行的是Windows10,python

因此,我制作了一个exe文件,它将运行到需要打开并写入csv文件的位置,故障是:

FileNotFoundError:[Errno 2]没有这样的文件或目录:“p:\\myfile\\directory\\sheet.csv”

[5520]无法执行脚本

目录确实存在,并且脚本在调试模式下或从python shell执行时,只有在exe格式下才会失败

我还注意到它在目录之间打印
\\
,这在我的脚本中不是这样的

我的一个理论是exe文件不能写入共享网络驱动器

我运行的是Windows10,python3.7

我的代码是:

with open('P:\my\directory\sheet.csv', 'a', newline='') as csvfile:

您应该将其更改为:

with open('P:/my/directory/sheet.csv', 'a', newline='') as csvfile:
注意从
\
/

Python字符串考虑反斜杠作为转义字符。您有很多选择:

  • \
    替换为
    /

  • 使用
    \\

  • 使用原始文字,即:
    r“p:\my\directory\sheet.csv”

  • 使用
    os.path.sep

  • 使用
    os.path.join

  • 等等

在你的情况下,我想说最简单的方法就是用
/
替换
\
,就像我给你的例子一样

作为示例,请尝试以下操作:

print("mydir\nothing\table.csv")
输出:

P:\mydir
othing  able
您将看到输出不是您最初期望的,因为
\n
\t
已转换为特殊字符:)


通常,除非您确定发生了什么,否则避免在字符串中使用反斜杠
\
。将正确处理用
/
分隔的目录。

您可以发布与此错误相关的正在使用的代码吗?很可能你的大脑中有逃跑的问题strings@purpletentacle我已将脚本的相关部分添加到问题中,正如我所说,这在visual stuido、python shell和编译后的python文件中都能很好地工作。为了完整性,请参见:在等下。一个常见的选项是使用“原始”字符串文字
r“P:\my\directory\sheet.csv”
谢谢你的建议!我又加了几句。