Python向用户输入文件路径添加反斜杠和引号,无法打开

2024-01-18

使用Python 3.9,我想“输入”文件路径(通过输入函数)。然后我想打开该文件路径。我受到以下错误的阻碍:

OSError: [Errno 22] Invalid argument: "'C:\\\\Users\\\\Hart\\\\Documents\\\\File.txt'"

我想知道为什么。

这是我所知道的:我有一个文件路径。根据os.path.exists,文件路径存在。

>>> os.path.exists("C:\\Users\\Hart\\Documents\\File.txt")
True

我可以打开文件。

>>> open("C:\\Users\\Hart\\Documents\\File.txt")
<_io.TextIOWrapper name='C:\\Users\\Hart\\Documents\\File.txt' mode='r' encoding='cp1252'>

我可以将该文件命名为任何名称,但它仍然存在,并且我仍然可以打开它。

>>> anything = "C:\\Users\\Hart\\Documents\\File.txt"
>>> os.path.exists(anything)
True
>>> open(anything)
<_io.TextIOWrapper name='C:\\Users\\Hart\\Documents\\File.txt' mode='r' encoding='cp1252'>

但我想通过输入函数间接打开文件。

>>> file = input('Enter a file path\n')
Enter a file path
'C:\\Users\\Hart\\Documents\\File.txt'

这将创建一个名为 file 的变量,它类似于我的文件路径。

>>> print(file)
'C:\\Users\\Hart\\Documents\\File.txt'

但当我尝试打开它时...

OSError: [Errno 22] Invalid argument: "'C:\\\\Users\\\\Hart\\\\Documents\\\\File.txt'"

该变量表示的文件也不存在。

>>> os.path.exists(file)
False

这是怎么回事?


如中所述字符串和字节文字 https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literalspython 字符串文字识别以反斜杠 (\) 开头的转义序列,以对换行符 (\n)、十六进制值 (\x03) 等进行编码。请注意,这些规则适用于字符串literals,即python源代码中的字符串,在使用前经过python编译。

从其他来源读取的字符串不是文字,也不遵循这些规则。所以,python源代码中的一个字符串

file = "C:\\Users\\Hart\\Documents\\File.txt"

是真的

 C:\Users\Hart\Documents\File.txt

在记忆中。很难发现这一点,因为当您显示字符串时,Python 可能会显示字符串的转义文字表示形式。您可以通过快速 shell 示例看到差异

>>> test = "C:\\Users\\Hart\\Documents\\File.txt"
>>> test
'C:\\Users\\Hart\\Documents\\File.txt'
>>> print(test)
C:\Users\Hart\Documents\File.txt

当你input()text,即真正的文本,不是字符串文字。 Windows 不需要引号或额外的反斜杠。所以,

>>> file = input('Enter a file path\n')
Enter a file path
C:\Users\Hart\Documents\File.txt
>>> print(file)
C:\Users\Hart\Documents\File.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python向用户输入文件路径添加反斜杠和引号,无法打开 的相关文章

  • 使用请求验证 SSL 证书

    我正在尝试验证 SSL 但它不起作用 我在浏览器上访问了我想要访问的机密网站 在 Chrome 上 我单击了储物柜 gt 证书 gt 详细信息 gt 复制到文件 gt base64 gt cert cer 我的代码是 test reques
  • 没有任何元数据的 zip 文件

    我想找到一种简单的方法来压缩一堆文件 而无需任何文件元数据 例如时间戳 这zip命令似乎总是保留元数据 我没有找到禁用元数据的方法 我希望解决方案是一个命令或最多一个 python 脚本 谢谢 正如一些帖子已经指出的那样 zip 标头中的大
  • 从正在运行的 python 脚本检测优化标志是否为 -O 或 -OO

    有时我想生成一个子进程 其优化标志与启动父进程时使用的优 化标志相同 我可以使用类似的东西 optimize not debug 但这样我就可以匹配两者 O and OO flags 是否有一些 python 内部状态包含该信息 经过一番深
  • 行未从树视图复制

    该行未在树视图中复制 我在按行并复制并粘贴到未粘贴的任何地方后制作了弹出复制 The code popup tk Menu tree opportunity tearoff 0 def row copy item tree opportun
  • 为什么 .setGeometry() 不改变 QWidget 实例的大小?

    我想使用 QWidget 更改 QPushButton 的大小 setGeometry https doc qt io qtforpython 5 PySide2 QtWidgets QWidget html PySide2 QtWidge
  • on_delete=models.PROTECT 和 on_delete=models.CASCADE 在 Django 模型上有什么作用?

    我对 Django 很熟悉 但最近注意到有一个on delete models CASCADE and on delete models PROTECT模型的选项 on delete models CASCADE and on delete
  • Tensorflow 可变图像输入大小(自动编码器、放大......)

    Edit WARNING不建议使用不同图像大小的图像 因为张量需要具有相同的大小才能实现并行化 我一直在寻找解决方案 了解如何使用不同大小的图像作为神经网络的输入 Numpy 第一个想法是使用numpy 然而 由于每个图像的大小不同 我无法
  • 可以在 TensorFlow 中使用排名相关作为成本函数吗?

    我正在处理偶尔充满异常值的极其嘈杂的数据 因此我主要依靠相关性来衡量我的神经网络的准确性 是否可以明确使用诸如等级相关性 斯皮尔曼相关系数 之类的东西作为我的成本函数 到目前为止 我主要依赖 MSE 作为相关性的代理 我现在面临三个主要障碍
  • 优化 Keras 以使用所有可用的 CPU 资源

    好吧 我真的不知道我在说什么 所以请耐心听我说 我正在使用 Theano 后端运行 Keras 以在 MNIST 图像上运行基本的神经网络 目前只是一个教程 过去 我一直使用我的旧 HP 笔记本电脑 因为我有 Windows 和 Ubunt
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • Python igraph:从图中删除顶点

    我正在使用安然电子邮件数据集 并尝试删除没有 enron com 的电子邮件地址 即我只想拥有安然电子邮件 当我尝试删除那些没有 enron com 的地址时 一些电子邮件由于某些原因被跳过 下面显示了一个小图 其中顶点是电子邮件地址 这是
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 如何在python中检索aws批处理参数值?

    流程 Dynamo DB gt Lambda gt 批处理 如果将角色 arn 插入动态数据库 它是从 lambda 事件中检索的 然后使用submit job角色 arn 的 API 被传递为 parameters role arn ar
  • Airflow Python 单元测试?

    我想为我们的 DAG 添加一些单元测试 但找不到任何单元测试 有 DAG 单元测试框架吗 有一个端到端的测试框架存在 但我猜它已经死了 https issues apache org jira browse AIRFLOW 79 https
  • 如何在与应用程序初始化文件不同的文件中迭代 api 路由

    我有一个 apiroutes py 文件 其中定义了许多路由 例如 api route api read methods GET api route api write methods POST 其中 api 是导入 from import
  • Flask WTForms 使用变量自动填充 StringField

    我有一个表格 我想用上一页收到的信息自动填充一些字段 但如果他们想调整它 它需要是可更改的 我正在为我的 SelectField 使用动态创建的列表 但添加 StringField 并不成功 请参阅下面的我的代码 forms py clas
  • 为什么实现 __iter__ 的对象不被识别为可迭代的?

    假设您使用包装对象 class IterOrNotIter def init self self f open tmp toto txt def getattr self item try return self getattribute
  • 为什么我们应该在 def __init__(self, n) -> None: 中使用 -> ?

    我们为什么要使用 gt in def init self n gt None 我读了以下摘录来自 PEP 484 https www python org dev peps pep 0484 the meaning of annotatio
  • 检查字符串是否只有字母和空格 - Python

    试图让 python 返回一个字符串仅包含字母和空格 string input Enter a string if all x isalpha and x isspace for x in string print Only alphabe
  • 在 Python 模块中使用 InstaLoader

    我正在尝试使用 Instaloader 下载与主题标签相关的照片以进行图像分析 我在GitHub存储库中找到了一个全面的方法 如何在终端中执行它 但是 我需要将脚本集成到Python笔记本中 这是脚本 instaloader no vide

随机推荐

  • 限制结果中的字段

    我正在使用 MongoDB v3 0 1 和 MongoDB Java 驱动程序 3 0 0 RC1 我有一个用户集合 其中包含 用户名 名字 姓氏 电子邮件 等字段 现在我想选择所有用户 但仅限于 用户名 名字 和 姓氏 字段 在 Mon
  • 如何在Windows Phone 7应用程序开发中动态显示图像?

    我想动态显示图像 即 如果每当单击特定图像更多 4 到 5 次 时 该图像就会消失 并且新图像可以填充此位置 我想在窗口中动态显示图像使用 silverlight 的电话 7 我知道这是一个很老的问题 但我有几分钟的空闲时间 每四次点击屏幕
  • 使用 Prism 更改 Xamarin Forms 中的页面过渡动画

    是否可以使用 Prism 的 INavigationService 更改 Xamarin Forms 中的页面过渡动画 我希望在 Android 上有淡入淡出动画 就像使用默认的 Xamarin Forms PushAsync PopAsy
  • 查询在 Oracle 11g 上有效,但在 Oracle 8i 上失败

    我在 Oracle 11g 中运行此查询没有问题 select case when seqnum 1 then 1 when seqnum cnt then 0 end as value1 case when seqnum 1 then t
  • Python 字符串格式化:填充负数

    我想将整数格式化为字符串 以便在没有符号的情况下 它们将被零填充以具有至少两位数字 例如我想要 1 1 10 10 to be 01 01 10 10 具体来说 我想要负数 3 和非负数 2 具有不同的最小字符串长度 简单的数字填充详情he
  • 子 span 元素脱离父元素,flexbox / margin - 填充问题

    我阅读了类似问题的帖子 但仍然无法使其正常工作 当有大文本时 我试图使用文本省略号 JSFiddle https jsfiddle net heyrohit bxrpduxu fixIssue align items center thum
  • 具有多个/许多伪选择器/匹配的本机 Javascript querySelectorAll()

    如何在本机 Javascript querySelectorAll 中放置许多伪选择器 示例 我想搜索 id 以 id starting 开头并以 id ending 结尾的元素 找不到现有问题 因此自己制作并回答 对于 Native Ja
  • 我应该如何排列这些“有用”的分数?

    在我网站上的用户生成的帖子下 我有一个类似亚马逊的评级系统 Was this review helpful to you Yes No 如果有投票 我会在该行上方显示结果 如下所示 5 of 8 people found this repl
  • C 中 DBL_EPSILON 和 Machine-Epsilon 的混淆

    Machine Epsilon 似乎有两个定义 将实数舍入到下一个浮点数时的最大相对误差 满足 1 0 machine eps 1 0 的最小正数 首先 我不明白这两者是如何关联的 根据我的理解 第二个 DBL EPSILON 不符合定义
  • 给定素数 N,计算下一个素数?

    一位同事刚刚告诉我 出于与哈希相关的神秘原因 C 字典集合按素数调整大小 我直接的问题是 它如何知道下一个素数是什么 它们是否记录一个巨大的表或动态计算 这是一个可怕的非确定性插入运行时间 导致调整大小 所以我的问题是 给定 N 质数 计算
  • 在 virtualenv 中执行 os.system('python ')

    我正在使用一个virtualenv要执行脚本 在这个脚本中我调用 os system python anotherScript py 我的问题是脚本是否在同一个中执行virtualenv作为调用者脚本 很难说 但是如果您在激活的 virtu
  • git - 樱桃挑选 - 如何/为什么

    问题 您想测试某人开发的功能 但它只是 存在于一个严重过时的远程分支中 Source http wiki koha community org wiki Using Git Cherry Pick cherry pick是如何解决这个问题的
  • 如何创建一个自动关闭的 HTML5 标签,例如
    [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我基本上想制作一个不需要关闭的自定义标签并将CSS应用于它 它不应该看起来像这样
  • meanjs 如何实现管理仪表板

    Meanjs 使用 AngularJS 进行前端 MVC 并且是一个 SPA 应用程序 因此当管理仪表板与前端页面不同时 实现管理仪表板的最佳方法是什么 也许有两个接入点 我一直在寻找一种方法来实现这一目标 我在这里发布了我的搜索结果 首先
  • 我应该如何使用 pgAdmin 3 将数据从 CSV 导入到 Postgres 表中?

    我需要为此使用任何插件或库吗 我想先在本地系统上尝试这个 然后在 Heroku Postgresql 上做同样的事情 pgAdmin 从 1 16 开始就有用于数据导入的 GUI 您必须先创建表 然后才能轻松导入数据 只需右键单击表名称并单
  • 使用 Angular-DataTables 更新数据时会重置分页

    我们有一个使用 Angular DataTables 的 Web 表单 DataTables 1 10 10 Angular datatables v0 5 3 我们使用来自后端的 JSON 来提供数据 该表配置了分页 并且每 10 秒手动
  • 无法从 Amazon Lambda、相同 VPC 和正确的角色权限访问 RDS

    我无法在生产中从 Amazon Lambda 成功连接到 RDS 对于 Amazon Lambda 我使用无服务器框架 离线执行 sls 可以从本地主机连接 RDS 但在生产中 Amazon Lambda 不能 两者都位于同一 VPC 同一
  • symfony2:如何在 QueryBuilder 中使用 group_concat

    我有一个名为 位置 的嵌套集 使用 Gedmo 树 实体 实体 公寓 具有 location id 以及我需要做什么来映射称为 路径 的标量值以返回所有公寓的查询 在 Doctrine1 中 我有这样的代码 Add path to each
  • 以编程方式调用@Controller

    我正在将使用 Spring MVC 控制器实现的代码转换为使用注释构造型 Controller 一切都很顺利 除了一个问题 给定请求 响应 如何以编程方式处理基于注释的控制器的请求 以前 无论实现如何 我可以调用 controller ha
  • Python向用户输入文件路径添加反斜杠和引号,无法打开

    使用Python 3 9 我想 输入 文件路径 通过输入函数 然后我想打开该文件路径 我受到以下错误的阻碍 OSError Errno 22 Invalid argument C Users Hart Documents File txt