首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果我要求用户输入一个文件,但该文件不存在,我如何在不停止程序的情况下继续询问文件名?

在不停止程序的情况下继续询问文件名,可以通过使用循环结构来实现。以下是一个示例代码:

代码语言:txt
复制
while True:
    file_name = input("请输入文件名:")
    try:
        with open(file_name, 'r') as file:
            # 文件存在,可以进行后续操作
            # 在这里可以添加你需要执行的代码
            break  # 跳出循环,继续程序的执行
    except FileNotFoundError:
        print("文件不存在,请重新输入文件名。")

# 继续执行程序的其他部分

上述代码使用了一个无限循环 while True,在循环内部通过 input 函数获取用户输入的文件名。然后使用 try-except 结构来捕获文件不存在的异常。如果文件存在,可以在 with open 语句块中添加你需要执行的代码,并使用 break 关键字跳出循环,继续程序的执行。如果文件不存在,会捕获到 FileNotFoundError 异常,并打印提示信息,然后继续下一次循环,继续询问文件名。

这种方式可以保持程序的运行,不会因为文件不存在而停止。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【linux学习指南】linux指令与实践文件编写

/usr 包含大部分用户级的程序和文件,如应用程序、库文件等。 /var 用于存储经常变化的文件,如日志、缓存、锁定文件等。...此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; 如图: 记得mkdir后要加一个空格,然后再输入,这里你输入tree这个命令发现查看不了...y 当然可以加上f可以不用询问 ls 指令 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。...基本用法: nano [文件名]: 打开指定的文件进行编辑。如果文件不存在,会创建一个新文件。 nano: 不指定文件名,会打开一个新的空白文件。...,可以指出,我不胜感激,让我们一起学习交流,如果文章可以给你一个小小帮助,可以给博主点一个小小的赞

11410

【Linux】基础指令

/xxx //进入该相对路径下 cd ~ //进入用户的家目录 cd - //返回到最近访问的目录 touch指令 语法:touch [文件名...功能:新建一个或多个不存在的普通文件。...当第二个参数类型是文件/不存在的目录名称时,源文件/源目录只能有一个,所以它将所给的源文件或目录重命名为给定的目标文件名。 3....当第二个参数是已存在的目录名称时,mv命令将源文件/目录均移至目标目录中。 常用选项: -f 如果目标文件已经存在,不询问直接覆盖。 -i 如果目标文件已经存在,询问是否要覆盖。...常用选项: -i 忽略搜索时的大小写 -n 对所有行前面加上行号 -v 反向选择,查找所有不包含该字符串的所有行。

11010
  • 学会23个linux常用命令,不做前端切图仔~

    若文件不存在,系统会建立一个新的文件。 ls -l 可以显示档案的时间记录。...只能处理前一条指令的正确输出,不能处理错误输出 管道命令必须要能够接受来自前一个命令的数据成为 standard input 继续处理才行。...若仍无法终止该程序,可使用 SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用 ps 指令或 jobs 指令查看。...clear 21. alias 命令 : 别名配置 Linux alias 命令用于设置指令的别名。 用户可利用 alias,自定指令的别名。若仅输入 alias,则可列出目前所有的别名设置。...任何位于参数之前的字符串都将被视为欲查找的目录名。 如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

    89941

    前端应该会的23个linux常用命令

    ,将源目录移动到目标目录.目标目录不存在则改名 mv 目录名 文件名 出错 ?...mv 5. touch 命令 : 新建文件 Linux touch 命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。...只能处理前一条指令的正确输出,不能处理错误输出 管道命令必须要能够接受来自前一个命令的数据成为 standard input 继续处理才行。 ?...clear 21. alias 命令 : 别名配置 Linux alias 命令用于设置指令的别名。 用户可利用 alias,自定指令的别名。若仅输入 alias,则可列出目前所有的别名设置。...如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

    1.4K10

    【Linux】--- Linux下基本指令(1)

    ls指令,作用是罗列出当前路径下的文件名,当然如果未创建则什么都没有。 mkdir指令,作用是在当前路径下,创建一个“文件夹”(目录)。 cd指令,作用是进入指定的”文件夹“(目录)。...touch指令,作用是在当前目录下,创建一个新的普通文件。 二、指令详细介绍 2.1 ls 指令 语法: ls[选项][目录或文件] 功能: 对于目录,该命令列出该目录下的所有子目录与文件。...看下边这一段指令,也说明了他们是文件: 既然他们都是文件,那我们要如何找到他们的路径呢?which指令,作用是要求系统打印出我所制定的指令名称,在系统的所在路径。...-a将所有章节的都显示出来,比如 man printf它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。.../test.c) 常用选项: -f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖 -i:若目标文件 (destination)已经存在时,就会询问是否覆盖!

    10210

    常用指令&权限管理

    ,可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。...如果路径中有不存在的目录,则会创建出这些不存在的路径。也就是可以一次性创建一个路径,多个目录。...) -f,--force # 强制复制,且覆盖已经存在的文件之前不询问用户。...跟 结束字符 相同,且 文件名开头和中间 满足中间字符要求 的文件 (比如有的通配符要求中间只能有一个字符,那么只有文件名结尾跟结束字符相同,且除了文件名结尾之外的部分(也就是开头和中间)只有一个字符的才能满足匹配要求...…]结束字符 # 会匹配满足 文件名开头 和 文件名结尾 分别与开始字符和结束字符相同的、中间不存在于[]内且只有一个字符的文件 ==通配符可以作为一个选项,在非常多的命令中都可以用到,用来匹配文件名

    47320

    初识Linux—常见基本指令

    机器打开 输入自己的用户名 然后输入密码,就登录自己的Linux所对应的机器了 这样基本就完成了 2.快速认识5—6个指令 1.pwd 显示我们当前在Linux系统中的路径 2.ls 罗列出当前路径下的文件名...把可执行程序拷贝/除到系统路径下 2.which... 要求系统打印出我所制定的指令名称,在系统的所在路径! 3.alias 也是一个Linux命令,给其他命令起别名!...,不询问是否删除 rm -r [dirName/dir] 删除目录 rm -rf [dirName/dir] 强制删除目录,不询问是否删除 7.man指令...只在第num章节找 -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。...-i 或 --interactive 覆盖文件之前先询问用户 拷贝目录时,带-r -r递归处理,将指定目录下的文件与子目录一并处理。

    7310

    探索Linux世界:初次接触和基本指令(文件操作)

    例如,* 表示可执行的普通文件,/ 表示目录,@ 表示符号链接,| 表示 FIFOs(命名管道),= 表示套接字(sockets) 如果在使用 ls 命令时不指定目录或文件名,它将默认列出当前工作目录下的文件和子目录...,如文件名、大小、创建时间、修改时间、权限等。...这样的文件在默认情况下不会被 ls 命令列出。如果想要显示所有文件,包括隐藏文件,可以使用 ls -a 命令,其中 -a 选项表示显示所有文件,包括以 . 开头的隐藏文件 .(当前目录): ....,包括存取时间和更改时间,或者新建一个不存在的文件。...覆盖文件之前先询问用户 -r递归处理,将指定目录下的文件与子目录一并处理。

    19710

    Linux基本指令2

    不在同一目录下的同名文件可以存在,并且不会报错。  如果我们想拷贝一个目录该怎么拷贝呢? 目录不能直接拷贝,要带-r选项,因为目录是递归式定义的。...覆盖文件之前先询问用户 拷贝目录在root账户下不会询问,即使加了-i也不会询问。 ...删除目录会提问: 加上-i选项也会提问: 删除文件会询问:  两次创立同一个文件会询问:  加上-i选项也会询问,但是前提是这个文件必须已经创建了: 若是之前文件不存在,即使加了-i选项也不会询问: ...如果想清空文件,有一个简化的写法 “>文件名”或者是“> 文件名”: 扩展: 如果我们想保留重定向之前的内容,我们要这样写: 注意:两个大于号是挨着的,中间没有空格,这种方式叫做追加重定向。...如果想提取文件中的行数该怎么办呢,比如1000到1020行? 这样就可以了,但是这样也会创建一个文件tmp.txt。

    3100

    Java开发必备linux命令集锦文件管理磁盘管理文档编辑系统管理rpm -aq|grep phpgrep someText *ifconfigenvexportechonetstat -npllso

    -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。 -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。...文件时,tail 命令会继续显示这些行 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。...注意,如果logs目录不存在,则该命令将info改名为logs。...如果一个您请求的列表正被打印,它也被停止。 source 也称为“点命令”,也就是一个点符号(.) 常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。...在对编译系统核心时常常需要输入一长串的命令,如: make mrproper make menuconfig make dep make clean make bzImage ………… 如果把这些命令做成一个文件

    1K111

    【Linux】安装+基本指令

    打开Xshell,有弹窗先关掉,ssh root@你的公网ip,输入密码。 如果是普通账户就是普通账户的用户名,如果是root就是root。 这样设置,以后登录就不需要输入公网IP了。...指令 pwd指令 语法: pwd 功能:显示用户当前所在的目录 ls指令 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。...如果是普通用户,最前面需要加一个sudo。 用tree .查看当前路径的树状目录i结构,很清晰看得出有哪些目录和文件。 ctrl+c ctrl+c可以用来终止异常命令。...(后面的不介绍) 查找printf时,如果不指定哪里找,会默认从第一章开始找,因为Linux有默认的printf命令,找到就会停止,此时在第一章。...覆盖文件之前先询问用户 -r递归处理,将指定目录下的文件与子目录一并处理。

    12710

    【玩转Linux】不允许你还不会Linux简单的指令

    ls 指令 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。...它缺省从第一章开始搜索,知道就停止,用a选项,当按 下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。...覆盖文件之前先询问用户 -r递归处理,将指定目录下的文件与子目录一并处理。...另外,如果您进入 /usr/local/src/etc 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同 范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/...ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件, 就可以透过这个方式来下达!

    8510

    bat脚本执行命令_实用bat代码

    pause ::该文件名为test1.bat @echo off timeout 2 echo 这是子程序第一个输出 echo 这是接收到的第一个参数%1 和第二个参数%2 pause @echo off...文件夹下 ::如果test文件夹不存在,则将test5文件夹移动到test1文件夹下并重命名为test ::注意:文件夹移动不能跨分区 move e:\test5 e:\test1\test ::将d:...txt 25、call使用 在程序中调用子脚本,在当前程序中运行子脚本代码,子脚本执行完后继续执行本程序之后的代码 ::该文件名为test.bat @echo off echo 这是主程序第一个输出 timeout...0 = vbApplicationModal - 应用程序模式:用户必须响应消息框才能继续在当前应用程序中工作。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    10.9K20

    Linux基础指令(1)

    登录Linux指令 登录Linux指令是ssh 用户名@公网IP ,然后链接成功就会弹出登录界面让用户输入密码,密码正确后就会尝试连接你的服务器; 如果链接成功就会出现"Welcome to 用户名....; 6.文件名开头是.的是隐藏文件,需要ls -a才能看到; ls指令 语法 : ls [ 选项 ][ 目录或文件 ] 功能 :对于目录,该命令列出该目录下的所有子目录与文件。...,比如 man printf 它缺省从第一章开始搜索,知道就停止,用 a 选项,当按下q 退出,他会继续往后面搜索,直到所有章节都搜索完毕。...或 --interactive 覆盖文件之前先询问用户 -r 递归处理,将指定目录下的文件与子目录一并处理。...常用选项 : -f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖 -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

    6200

    Linux入门(一)

    这里有个bad password只是因为我设置的密码太过简单,但这并不影响我回车确定,到这里这个新用户就新建成功了,然后我们可以用新用户star登录 输入用户名star 再输入star的密码,随后就可以看到登录进来的用户就变成...对于文件,将列出文件名以及其他信息 输入ls指令后,显示了我当前路径下的所有文件。 常用选项 -a 列出目录下的所有文件,包括以 . 开头的隐含文件。...代表是,n代表否),如果这个目录下有一万个文件,难道我要输入一万个y或者n吗?...2.如果man指令不带数字,也就是不指定章节,会默认从第一章节开始查找,如果指定章节则会直接从该章节中查找。...发现操作系统只是询问了我一下,当我再输入”y“时,原文件便被覆盖了。如果我们不希望操作系统向我询问可以带上”-f“选项,这一点和” rm“指令是一样的。

    1.1K00

    【Linux系统编程】基础指令(一)

    指令 && rm 指令(重要) 8.结语 1. touch指令 语法: touch [选项] [文件名] 功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件...接下来我们就要学习下一个指令ls指令来查看; 2. ls 指令 语法: ls [选项][目录或文件] 功能: 对于目录,该命令列出该目录下的所有子目录与文件; 对于文件,将列出文件名以及其他信息...如:ls –alk 指定文件 -l 列出文件的详细信息; -n 用数字的 UID,GID 代替名称;(介绍 UID, GID) -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件...在指定目录的情况下,默认会显示该目录及其子目录的树状结构。 功能: tree命令用于以树状结构显示目录的内容。它会递归地列出目录树中的所有子目录和文件。...: 接着我们使用rm -r dirname指令一次性删除该目录及其下所有文件 如上图所示,再次使用tree命令时发现只剩一个文件了 8.结语 这些只是一部分常见的Linux基础指令,后续将会继续介绍更多的

    12210

    【Linux】Linux下基本指令

    1.ls指令 语法 : ls [ 选项 ][ 目录或文件 ] 功能 :对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。...,比如 man printf 它缺省从第一章开始搜索,知道就停止,用 a 选项,当按 下 q 退出,他会继续往后面搜索,直到所有章节都搜索完毕。...-i 或 --interactive 覆盖文件之前先询问用户 -r 递归处理,将指定目录下的文件与子目录一并处理。...tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,...反馈结果在通过内核运行出结果,通过shell 解析给用户。 帮助理解:如果说你是一个闷骚且害羞的程序员,那 shell 就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的MM 小花。

    11710

    Linux下基本指令

    ,该命令列出该目录下的所有子目录与文件。...因为,他会一次次的询问,如果遇到上万的数据量时就会比较麻烦, 所以,又加入了一个参数 -f 意思就是我全都同意,不要在问我了 那我为什么觉得上面的 mkdir 不好直接用 rm , 因为 rm...比如 man printf 它缺省从第一章开始搜索,知道就停止,用 a 选项,当按下q 退出,他会继续往后面搜索,直到所有章节都搜索完毕。...有两个角度可以解决这个问题 : 如上图,每一个文件都会有 . 和 .. 的隐藏文件,如果,把全部隐藏文件复制过去了,就会造成文件名冲突。...选项: -f 循环读取 -n 显示行数 26.补充知识:管道 | 问题: 如果我想查看一个文件中间部分的内容怎么办?

    6400

    Linux常用命令大全(整理自用)

    tail 命令 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。...默认情况下 locate 命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是 locate 所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值中,updatedb 每天会跑一次...在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略 -newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer...[^] #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。...不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用"-KILL" 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。

    2.4K10
    领券