I am aware that in TensorFlow, a tf.string tensor is basically a byte string. I need to do some operation with a filename which is stored in a queue using [tf.train.string\_input\_producer()](https://www.tensorflow.org/api_docs/python/tf/train/string_input_producer).

A small snippet is shown below :

```
 key, value = reader.read(filename_queue)
 filename = value.eval(session=sess)
 print(filename)

```

However as a byte string it gives an output like the following :

```
b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00C\x00\x08\x06\x06\x07\x06\x05\x08\x07\x07\x07\t\t\x08'

```

I tried to convert using 

```
filename = tf.decode_raw(filename, tf.uint8)
filename = ''.join(chr(i) for i in filename)

```

However Tensor objects are not iterable and hence this fails.

Where am I going wrong ?

Is it a missing feature in TensorFlow that tf.string be converted to a Python string easily , or is there some other feature I am not aware about ?

**More Info**

The filename\_queue has been prepared as follows :

```
train_set = ['file1.jpg', 'file2.jpg'] # Truncated for illustration
filename_queue = tf.train.string_input_producer(train_set, num_epochs=10, seed=0, capacity=1000)                  

```