我目前正在try 编写一个程序,它将在一个目录中显示CSV,然后您可以输入文件的编号,它将显示.CSV文件中写入的内容.我已经把一切都准备好了,除了当我输入一个数字时,它会显示出那个CSV中写了什么,然后是它后面的所有CSV.

def seeProject():
    y = 1
    p = 0
    for x in os.listdir():
        if x.endswith(".csv"):
            print(str(y)+". "+ x)
            y = y+1
    f = input("Which would you like to open?\n")
    for x in os.listdir():
        if x.endswith (".csv") and p == int(f):
            j = open(x,"r")
            for w in j:
                print(w)
        else:
            p += 1
            continue

我try 更改p值,但不起作用.我确实try 了按名称打开特定的文件,这很管用,但将来的一些文件有很长的名称,我宁愿只 Select 文件号.当我放入1时,我得到:

1. Herman.csv
2. Jemma.csv
Which would you like to open?
1
EROEIER,EEROIWEN,EOTIHNWET,0,WOIRH(*,WHR(*WR,WRUIWRH8,WRHWR*

WRWRIUWBT,OIEGE,EPORTE(Tb,0,OEIRHWER(,WER(*WE,WBRUI8,IWBR8

加2的结果是:

1. Herman.csv
2. Jemma.csv
Which would you like to open?
2
WRWRIUWBT,OIEGE,EPORTE(Tb,0,OEIRHWER(,WER(*WE,WBRUI8,IWBR8
``

推荐答案

从您的代码中,我发现了两个问题

  1. 初始化y = 1,但是初始化p = 0,因此会导致off-by-one错误
  2. 当您找到您的文件并显示内容时,您没有将p加一.因此,将显示后续文件.

以下是代码的修复方法:

import os


def seeProject():
    y = 1
    p = 1  # <-- Init to 1
    for x in os.listdir():
        if x.endswith(".csv"):
            print(str(y) + ". " + x)
            y = y + 1
    f = input("Which would you like to open?\n")
    for x in os.listdir():
        if x.endswith(".csv"):
            if p == int(f):  # <-- Create a separate if statement
                print(f"{x=}")
                j = open(x, "r")
                for w in j:
                    print(w)
            p = p + 1  # <-- Increase for all the .csv files


seeProject()

备注

  • 请不要使用单一字母的变量名称:它们是隐晦的,不能说明它们的用途.请看看其他人的解决方案,看看他们如何命名自己的变量
  • 这篇文章正在帮助你找出错误.考虑学习别人的解决方案:他们更简单,更容易遵循

Python相关问答推荐

Polars比较了两个预设-有没有方法在第一次不匹配时立即失败

acme错误-Veritas错误:模块收件箱没有属性linear_util'

ModuleNotFound错误:没有名为Crypto Windows 11、Python 3.11.6的模块

输出中带有南的亚麻神经网络

如何制作10,000年及以后的日期时间对象?

优化器的运行顺序影响PyTorch中的预测

使用groupby方法移除公共子字符串

合并帧,但不按合并键排序

为什么numpy. vectorize调用vectorized函数的次数比vector中的元素要多?

try 检索blob名称列表时出现错误填充错误""

网格基于1.Y轴与2.x轴显示在matplotlib中

OpenGL仅渲染第二个三角形,第一个三角形不可见

如何在Python请求中组合多个适配器?

从源代码显示不同的输出(机器学习)(Python)

当输入是字典时,`pandas. concat`如何工作?

为什么Visual Studio Code说我的代码在使用Pandas concat函数后无法访问?

分解polars DataFrame列而不重复其他列值

时长超过24小时如何从Excel导入时长数据

使用xlsxWriter在EXCEL中为数据帧的各行上色

如何获取给定列中包含特定值的行号?