在Python中使用for循环写入文件,添加新列

时间:2017-05-10 18:32:00

标签: python io ascii

我的数据如下:

import java.sql.*;

public class DBconn {

    private Connection con;
    public Statement st;
    public ResultSet rs;

    public DBconn(){
        try{
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

            con = DriverManager.getConnection("jdbc:sqlserver://ARZ_Daunte-PC\\MSSQLSERVER;databaseName=OnlineAccommodationSystem","sa","root");
        st = con.createStatement();
        }catch (Exception e){
            System.out.println("Error "+e);
            }
    }
    public void getData(){
    try{
        String query = "select * Addinglandlords";
        rs =st.executeQuery(query);
        System.out.println("record from database");

        while(rs.next()){
        String firstname=rs.getString("firstname");
        String lastname=rs.getString("lastname");
        String landlordID=rs.getString("landlordID");
        String email=rs.getString("email");
        String contactNO=rs.getString("contactNO");
        System.out.println("First name :"+firstname);
        System.out.println("Last name: "+lastname);
        System.out.println("Landlord ID: "+landlordID);
        System.out.println("Email: "+email);
        System.out.println("Contact No: "+contactNO);


        }

        }catch (Exception e){
            System.out.println("Error "+e);
            }
    }
}

我很简单(!!)想要写出一个文件:

print(data['ra'][0], data['dec'][0])
308.3194375 89.9638467

TypeError:write()只接受一个参数(给定3个)。

为什么这么难做?!?!?

3 个答案:

答案 0 :(得分:2)

您在3中传递了write参数,这是错误的。

f = open('output.dat', 'w')
for ii in range(0, 10):
    f.write("%d %d %d" % (long(ii), data['ra'][ii], data['dec'][ii]))
f.close()

答案 1 :(得分:0)

@Nilesh对于这个特定错误是正确的,但更广泛的问题似乎是“如何将数据写入csv?”。您没有指定数据存储在哪个数据结构中,但它看起来很像Pandas数据帧,在这种情况下data.to_csv()将使此过程更加简单。

如果它还不是数据框,那么您可以将其转换为:

import pandas as pd
df = pd.DataFrame({'ra': data['ra'], 'dec': data['dec']})
df.to_csv('output.dat', sep=' ')

如果您正在使用其他类型的结构(例如numpy记录数组或AstroPy表),您可以找到特定于这些数据结构的类似功能。

答案 2 :(得分:0)

只需在write函数周围添加另一对括号,它就可以工作。