Python - 从文件中读取任何文件

时间:2015-12-02 23:09:37

标签: file

我想创建一个从txt文件中读取的函数,用户在函数上给出的函数。我知道如何在python上打开一个特定的文件,但我不知道如何在函数上创建任何文件。

例如,我想做这样的事情: Read_board(irock.txt)--- irock.txt,可以是任何其他的fale,它是函数接收的参数。读取文件中的行并将其返回。

这是我的最终代码

    def le_tabuleiro(txt):
        text = ((open(txt, 'r')).readline())
        print text

谢谢大家。

1 个答案:

答案 0 :(得分:0)

您需要读取文件对象,而不是其名称。试试这个:

    public Observable<Bitmap> mObservable;
    Subscriber<Bitmap> mSubscriber;
    Subscription mSubscription;
    Bitmap loadedBitmap;

....

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        if (savedInstanceState != null) {
            loadedBitmap = savedInstanceState.getParcelable("LoadedBitmap");
            imageView.setImageBitmap(loadedBitmap);
        }
        else {
            runNewObservable();
        }
        runSubscribe();
        return mainView;
    }

....

    private void runNewObservable () {
        mObservable =
                Observable.create(new Observable.OnSubscribe<Bitmap>() {
            @Override
            public void call(Subscriber<? super Bitmap> subscriber) {
                subscriber.onNext(new LoadingImage().loadImageFrom(imageURL));
                subscriber.onCompleted();
            }
        })
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .cache();

    }



    private void runNewSubscribe () {
        mSubscriber = new Subscriber<Bitmap>() {

            @Override
            public void onCompleted() { }

            @Override
            public void onError(Throwable e) { }

            @Override
            public void onNext(Bitmap bitmap) {
                loadedBitmap = bitmap;
                imageView.setImageBitmap(bitmap);
            }
        };
    }

    @Override
    public void onResume() {
        super.onResume();
        mSubscription = mObservable.subscribe(mSubscriber);
    }


    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putParcelable("LoadedBitmap", loadedBitmap);
    }



    @Override
    public void onStop() {
        super.onStop();
        mSubscription.unsubscribe();
    }

....

另请注意,def read_board(f): ficheiro = open(f, "r") line = ficheiro.readline() return line 是包含文件名的字符串,因此将未加引号的变量传递给f

值得一提的另一件事是你可以/应该使用open()语句来打开文件。这将确保在函数返回后(或者如果有异常)正确关闭文件:

with