正确的方法使用try和除了多个打开

时间:2018-03-28 05:10:25

标签: python python-3.x

我有一个log.csv和db.csv文件。如果它们都包含相同的数字,则没有任何反应。如果db.csv的数字较大,则log.csv将使用与db.csv相同的编号进行更新

如果不存在,我当前的代码会通知哪个文件丢失。这是使用try的正确方法吗?或者我应该尝试一下,除了每一个打开'声明?

#include <iostream>
#include <string>
#include <cmath>

using namespace std;

//declare function
void get_data();

int main()
{
//local variable declaration    
int input;
int criteria_1 = 1970;
int criteria_2 = 2020;

// ask for input and store
cout << "Enter the year: ";
cin >> input;

//call the function to validate the number    
get_data(input, criteria_1, criteria_2);

return 0;
}

//define function
void get_data(int x, int y, int z)
{
// set variable for what is being inputted
int input;

//repeat asking user for input until a valid value is entered
while (x <= y||x >= z){
    cout << "The valid range is >=" + y;
    cin >> x;
    input = x;
}
//display output on screen
cout << input << endl;

//reset variable for what was inputted 
input = 0;

return;
}

1 个答案:

答案 0 :(得分:1)

为什么不在一行上打开多个?在循环中重复打开任何文件,而实际上取决于循环变量是非常低效的

with open("log.csv", "rb+") as log, open("db.csv", "rb") as db:
    for log_number in log:

但是,如果您确实需要正确的数据库,请使用sqlite3模块并在单个数据库文件中创建SQL表,而不是维护单独的文件。用户已经存在或者找到最大值的选择也是简单的操作