关于python:如何检查用户是否向文件名添加了”.txt”,如果没有添加,如何添加它?

How do I check to see if user added '.txt' to file name and add it if they did not?

本问题已经有最佳答案,请猛点这里访问。

我遇到的问题可能比我想象的要容易得多。(我在一个入门级的编程课程中)

基本上,我正在编写一个程序,在这个程序中,我向用户请求一个文件名,我先从文件中读取信息,然后再将其排序并写到其他地方。任务要求我们向用户请求要读取的文件名。如果用户使用".txt"输入文件名,我们将继续处理。如果没有,我们必须在继续之前添加".txt"。如果文件名中没有包含".txt",我知道如何将其添加到文件名中,但是我不知道如何首先检查文件名是否包含".txt"。

我该如何首先检查用户是否使用扩展名编写了文件名?

我假设这与一个if/else语句有关,但我一直感到困惑。

谢谢你


检查+添加扩展名:

1
2
3
4
import os.path

if os.path.splitext(filename)[1] != '.txt':  # Ending is not '.txt'.
   filename += '.txt'

使用os.path.splitext分割基名称和扩展名。


文件名可能存储在str对象(即字符串)中。python记录了可以对str对象执行的所有操作。其中一个操作是ends with-这将告诉您字符串对象是否以特定的子字符串结尾。

因此,如果将文件名存储在名为my_filename的变量中,可以执行以下操作:

1
has_extension = my_filename.endswith('.txt')

如果我的u文件名以".txt"结尾,扩展名将为true,否则为false。

python的odcompumentation非常棒,我会在上面留一个书签,以便在这种情况下参考。


您可以使用endswith(无需任何额外进口):

1
fileName +=".txt" if not fileName.endswith('.txt') else""

如果您想更正扩展名,您可能需要查看os.splitpath