COMPAT: Consider Python 2.x tarfiles file-like
State: closed

`Tarfile.ExFileObject` has no `next` method in Python 2.x, making it an invalid file-like object in `read_csv`. However, they can be read in just fine, meaning our check is too strict for file-like. This commit relaxes
the check to just look for the `__iter__` attribute.

Closes #16530.

Labels:
name: IO CSV
description: read_csv, to_csv
name: Compat
description: pandas objects compatability with Numpy or Python functions

Comments:
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=h1) Report
> Merging [#16533](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/e60dc4cff2c6e8a2283fbb906faeb8cb01df37ff?src=pr&el=desc) will **decrease** coverage by `<.01%`.
> The diff coverage is `60%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/16533/graphs/tree.svg?width=650&height=150&src=pr&token=eZ4WkYLtcO)](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #16533      +/-   ##
==========================================
- Coverage   90.79%   90.79%   -0.01%     
==========================================
  Files         161      161              
  Lines       51063    51075      +12     
==========================================
+ Hits        46365    46371       +6     
- Misses       4698     4704       +6
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `88.63% <60%> (-0.01%)` | :arrow_down: |
| #single | `40.15% <60%> (ø)` | :arrow_up: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/dtypes/inference.py](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZHR5cGVzL2luZmVyZW5jZS5weQ==) | `98.33% <100%> (ø)` | :arrow_up: |
| [pandas/io/parsers.py](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=tree#diff-cGFuZGFzL2lvL3BhcnNlcnMucHk=) | `95.3% <57.14%> (-0.36%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=footer). Last update [e60dc4c...a9c9365](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=h1) Report
> Merging [#16533](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/ee8346d3a232bb9b9d35612b4c4d41eb80ab18c9?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/16533/graphs/tree.svg?width=650&height=150&token=eZ4WkYLtcO&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #16533      +/-   ##
==========================================
+ Coverage   90.75%   90.75%   +<.01%     
==========================================
  Files         161      161              
  Lines       51073    51081       +8     
==========================================
+ Hits        46350    46360      +10     
+ Misses       4723     4721       -2
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `88.59% <100%> (ø)` | :arrow_up: |
| #single | `40.16% <81.81%> (ø)` | :arrow_up: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/dtypes/inference.py](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZHR5cGVzL2luZmVyZW5jZS5weQ==) | `98.33% <100%> (ø)` | :arrow_up: |
| [pandas/io/parsers.py](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=tree#diff-cGFuZGFzL2lvL3BhcnNlcnMucHk=) | `95.68% <100%> (+0.02%)` | :arrow_up: |
| [pandas/core/internals.py](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvaW50ZXJuYWxzLnB5) | `93.4% <0%> (+0.07%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=footer). Last update [ee8346d...7c59fc9](https://codecov.io/gh/pandas-dev/pandas/pull/16533?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

lgtm. ping on green.
@jreback : Green all around and ready to merge.
thanks!