Skip to content

Unable to open file with hash in filename #174

Description

@mdavis-xyz

Steps to reproduce

Create a file with a hash in the name.

echo "a,b" >> "test#file.CSV"
echo "1,2" >> "test#file.CSV"

Try to read it with another tool:

head "test#file.CSV"

Now try with tabview (1.4.4)

$ tabview "test#file.CSV"
Traceback (most recent call last):
  File "/home/matthew/Documents/TSE/Internships/IEA/Workload/aws-batch/nemweb-batch/csv2parquet/venv/bin/tabview", line 108, in <module>
    view(data, enc=args.encoding, start_pos=start_pos,
  File "/home/matthew/Documents/TSE/Internships/IEA/Workload/aws-batch/nemweb-batch/csv2parquet/venv/lib/python3.12/site-packages/tabview/tabview.py", line 1301, in view
    with open(parsed_path, 'rb') as fd:
         ^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'test'

Same result with using single quotes or no quotes to escape the file name.

Cause

urlparse will delete the # component, because for http URLs that makes sense. For local files, # doesn't mean anything different to other characters.

Since files are openned with open(parsed_path, 'rb'), it seems like tabview doesn't support reading remote files over http. So what's the point of the urlparse usage?

Solution

Delete the parse_path function. Just keep the filename data string as is.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions